## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize the profit of a fast-food restaurant by determining the optimal number of wraps and bowls to sell, given the constraints on the available rice and fish.

Let's define the decision variables:

* `w`: the number of wraps to sell
* `b`: the number of bowls to sell

The objective function is to maximize the total profit:

* Profit per wrap: $5
* Profit per bowl: $7
* Total profit: `5w + 7b`

The constraints are:

* Rice availability: 800 units
* Each wrap contains 3 units of rice, and each bowl contains 5 units of rice
* `3w + 5b <= 800`
* Fish availability: 700 units
* Each wrap contains 2 units of fish, and each bowl contains 3 units of fish
* `2w + 3b <= 700`
* Non-negativity constraints: `w >= 0` and `b >= 0`

## Gurobi Code

```python
import gurobi

# Create a new Gurobi model
m = gurobi.Model()

# Define the decision variables
w = m.addVar(lb=0, name="wraps")
b = m.addVar(lb=0, name="bowls")

# Define the objective function
m.setObjective(5 * w + 7 * b, gurobi.GRB.MAXIMIZE)

# Define the constraints
m.addConstr(3 * w + 5 * b <= 800, name="rice_constraint")
m.addConstr(2 * w + 3 * b <= 700, name="fish_constraint")

# Optimize the model
m.optimize()

# Print the solution
if m.status == gurobi.GRB.OPTIMAL:
    print(f"Optimal solution: {w.varName} = {w.x}, {b.varName} = {b.x}")
    print(f"Maximum profit: ${m.objVal:.2f}")
else:
    print("No optimal solution found")
```

This code defines the decision variables, objective function, and constraints, and then solves the model using Gurobi's optimization algorithm. If an optimal solution is found, it prints the values of the decision variables and the maximum profit. Otherwise, it indicates that no optimal solution was found.