To solve this problem, we will use linear programming techniques. The goal is to minimize the total cost of buying Protein Bar A and Protein Bar B while ensuring that the bodybuilder meets his minimum daily requirements for protein, fat, and carbs.

Let's denote:
- \(x\) as the number of Protein Bar A purchased
- \(y\) as the number of Protein Bar B purchased

The constraints based on the nutritional requirements are:
1. For protein: \(10x + 15y \geq 80\)
2. For fat: \(3x + 5y \geq 50\)
3. For carbs: \(11x + 8y \geq 100\)

The objective function to minimize the total cost is:
\[7x + 10y\]

Since we cannot buy negative numbers of bars, we also have:
\[x \geq 0\]
\[y \geq 0\]

Now, let's translate this into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Protein_Bars")

# Define the variables
x = m.addVar(lb=0, vtype=GRB.INTEGER, name="Protein_Bar_A")
y = m.addVar(lb=0, vtype=GRB.INTEGER, name="Protein_Bar_B")

# Define the constraints
m.addConstr(10*x + 15*y >= 80, name="Protein_Requirement")
m.addConstr(3*x + 5*y >= 50, name="Fat_Requirement")
m.addConstr(11*x + 8*y >= 100, name="Carbs_Requirement")

# Define the objective function
m.setObjective(7*x + 10*y, GRB.MINIMIZE)

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Buy {x.x} Protein Bar A(s)")
    print(f"Buy {y.x} Protein Bar B(s)")
    print(f"Total cost: ${7*x.x + 10*y.x}")
else:
    print("No optimal solution found")
```