To solve the optimization problem described, we first need to translate the natural language description into a symbolic representation. This involves defining variables, an objective function, and constraints.

Let's denote:
- $x_1$ as the number of Mexican burritos sold,
- $x_2$ as the number of Korean burritos sold.

The objective is to maximize profit. Given that the profit per Mexican burrito is $7 and per Korean burrito is $4.5, the objective function can be written as:
\[ \text{Maximize: } 7x_1 + 4.5x_2 \]

Now, let's define the constraints based on the availability of ingredients:
- Cheese constraint: $7x_1 + 5x_2 \leq 70$ (since each Mexican burrito requires 7 units of cheese and each Korean burrito requires 5 units, and there are 70 units available),
- Beans constraint: $8x_1 \leq 60$ (since each Mexican burrito requires 8 units of beans and there are 60 units available),
- Onions constraint: $5x_2 \leq 45$ (since each Korean burrito requires 5 units of onions and there are 45 units available),
- Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$ (since the number of burritos sold cannot be negative).

Thus, the symbolic representation of the problem is:
```json
{
    'sym_variables': [('x1', 'Number of Mexican burritos'), ('x2', 'Number of Korean burritos')],
    'objective_function': '7*x1 + 4.5*x2',
    'constraints': ['7*x1 + 5*x2 <= 70', '8*x1 <= 60', '5*x2 <= 45', 'x1 >= 0', 'x2 >= 0']
}
```

Now, let's write the Gurobi code in Python to solve this linear programming problem:
```python
from gurobipy import *

# Create a new model
model = Model("Burrito_Optimization")

# Add variables
x1 = model.addVar(lb=0, name="Mexican_Burritos")
x2 = model.addVar(lb=0, name="Korean_Burritos")

# Set the objective function
model.setObjective(7*x1 + 4.5*x2, GRB.MAXIMIZE)

# Add constraints
model.addConstr(7*x1 + 5*x2 <= 70, "Cheese_Constraint")
model.addConstr(8*x1 <= 60, "Beans_Constraint")
model.addConstr(5*x2 <= 45, "Onions_Constraint")

# Optimize the model
model.optimize()

# Print the results
if model.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Number of Mexican burritos: {x1.x}")
    print(f"Number of Korean burritos: {x2.x}")
    print(f"Total profit: ${7*x1.x + 4.5*x2.x:.2f}")
else:
    print("No optimal solution found")
```