To solve Adrian's problem, we need to formulate a linear programming model. The goal is to minimize the total cost of bagels and burgers while meeting the minimum requirements for calories and fat.

Let's denote:
- $x$ as the number of bagels,
- $y$ as the number of burgers.

The objective function to minimize is the total cost: $4.5x + 12y$.

The constraints are:
1. Minimum calories: $250x + 800y \geq 2500$
2. Minimum fat: $15x + 23.5y \geq 500$

Since Adrian can't eat a negative number of bagels or burgers, we also have non-negativity constraints: $x \geq 0$ and $y \geq 0$.

Now, let's write the Gurobi code to solve this problem:

```python
from gurobipy import *

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

# Define variables
bagels = m.addVar(vtype=GRB.CONTINUOUS, name="bagels")
burgers = m.addVar(vtype=GRB.CONTINUOUS, name="burgers")

# Set the objective function
m.setObjective(4.5*bagels + 12*burgers, GRB.MINIMIZE)

# Add constraints
m.addConstr(250*bagels + 800*burgers >= 2500, "calories")
m.addConstr(15*bagels + 23.5*burgers >= 500, "fat")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Bagels: {bagels.x}")
    print(f"Burgers: {burgers.x}")
    print(f"Total cost: ${4.5*bagels.x + 12*burgers.x:.2f}")
else:
    print("No optimal solution found")
```