To solve this optimization problem, we need to define the decision variables, the objective function, and the constraints. Let's denote the number of pizzas as $p$ and the number of donuts as $d$. The actor wants to minimize costs, so the objective function will be the total cost of pizzas and donuts.

The constraints are:
- The actor needs to eat at least 3000 calories per day.
- The actor needs to eat at least 200 grams of fat per day.

Given that each pizza contains 300 calories and 10 grams of fat, and each donut contains 200 calories and 7 grams of fat, we can formulate the problem as follows:

Minimize: $4p + 2d$ (the total cost)

Subject to:
- $300p + 200d \geq 3000$ (calorie constraint)
- $10p + 7d \geq 200$ (fat constraint)
- $p, d \geq 0$ (non-negativity constraints, as the actor cannot eat a negative number of pizzas or donuts)

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

```python
from gurobipy import *

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

# Define the decision variables
pizzas = m.addVar(vtype=GRB.CONTINUOUS, name="pizzas")
donuts = m.addVar(vtype=GRB.CONTINUOUS, name="donuts")

# Set the objective function (minimize cost)
m.setObjective(4*pizzas + 2*donuts, GRB.MINIMIZE)

# Add constraints
m.addConstr(300*pizzas + 200*donuts >= 3000, "calorie_constraint")
m.addConstr(10*pizzas + 7*donuts >= 200, "fat_constraint")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Pizzas: {pizzas.x}")
    print(f"Donuts: {donuts.x}")
    print(f"Total cost: ${4*pizzas.x + 2*donuts.x:.2f}")
else:
    print("No optimal solution found")
```