To solve the given optimization problem, we first need to translate the natural language description into a symbolic representation. This involves defining variables for the quantities of small and large fish, formulating the objective function based on profits, and establishing constraints related to cleaning and cutting time limitations.

Let's denote:
- $x_1$ as the number of small fish,
- $x_2$ as the number of large fish.

The profit per small fish is $8, and per large fish is $11. Thus, the objective function to maximize profit can be written as:
\[ 8x_1 + 11x_2 \]

Given constraints are:
1. Each small fish takes 5 minutes for cleaning, and each large fish takes 10 minutes. The total available time for cleaning is 500 minutes.
\[ 5x_1 + 10x_2 \leq 500 \]
2. Each small fish requires 10 minutes of cutting, and each large fish requires 15 minutes. The total available time for cutting is 700 minutes.
\[ 10x_1 + 15x_2 \leq 700 \]

Additionally, $x_1$ and $x_2$ must be non-negative since they represent quantities of fish.

In symbolic notation with natural language objects, we have:
```json
{
'sym_variables': [('x1', 'number of small fish'), ('x2', 'number of large fish')], 
'objective_function': '8*x1 + 11*x2', 
'constraints': ['5*x1 + 10*x2 <= 500', '10*x1 + 15*x2 <= 700', 'x1 >= 0', 'x2 >= 0']
}
```

To solve this linear programming problem using Gurobi in Python, we'll write the following code:

```python
from gurobipy import *

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

# Define variables
x1 = m.addVar(vtype=GRB.CONTINUOUS, name="small_fish", lb=0)
x2 = m.addVar(vtype=GRB.CONTINUOUS, name="large_fish", lb=0)

# Set the objective function
m.setObjective(8*x1 + 11*x2, GRB.MAXIMIZE)

# Add constraints
m.addConstr(5*x1 + 10*x2 <= 500, "cleaning_time")
m.addConstr(10*x1 + 15*x2 <= 700, "cutting_time")

# Optimize the model
m.optimize()

# Print the solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Number of small fish: {x1.x}")
    print(f"Number of large fish: {x2.x}")
    print(f"Maximum profit: {m.objVal}")
else:
    print("No optimal solution found")
```