To solve this optimization problem, we first need to define the decision variables and the objective function. Let's denote the number of tacos sold as \(T\) and the number of burritos sold as \(B\). The profit per taco is $3, and the profit per burrito is $6. Therefore, the total profit can be represented as \(3T + 6B\).

The constraints given in the problem are:
1. Sell at least 50 tacos: \(T \geq 50\)
2. Sell at least 30 burritos: \(B \geq 30\)
3. Make at most 80 tacos: \(T \leq 80\)
4. Make at most 50 burritos: \(B \leq 50\)
5. Cook at most 100 items in total: \(T + B \leq 100\)

All of these constraints are linear, making this a linear programming problem. The goal is to maximize the profit function \(3T + 6B\) subject to these constraints.

Now, let's express this problem in Gurobi code using Python:

```python
from gurobipy import *

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

# Define the decision variables
tacos = m.addVar(lb=50, ub=80, vtype=GRB.INTEGER, name="tacos")
burritos = m.addVar(lb=30, ub=50, vtype=GRB.INTEGER, name="burritos")

# Define the objective function: Maximize profit
m.setObjective(3*tacos + 6*burritos, GRB.MAXIMIZE)

# Add the constraint for the total number of items
m.addConstr(tacos + burritos <= 100, "total_items")

# Optimize the model
m.optimize()

# Print out the solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Number of tacos to sell: {tacos.x}")
    print(f"Number of burritos to sell: {burritos.x}")
    print(f"Total profit: ${3*tacos.x + 6*burritos.x:.2f}")
else:
    print("No optimal solution found")
```