## Step 1: Define the symbolic representation of the problem

Let's denote the number of eggs benedicts as $x_1$ and the number of hashbrowns as $x_2$. The objective is to maximize profit, where the profit per eggs benedict is $4 and the profit per hashbrown is $2. Therefore, the objective function can be represented as $4x_1 + 2x_2$.

## Step 2: Identify the constraints

Each eggs benedict requires 10 grams of butter, and each hashbrown requires 5 grams of butter. The restaurant has 5000 grams of butter available. This gives us the constraint $10x_1 + 5x_2 \leq 5000$.

## 3: Identify the egg constraint

Each eggs benedict requires 1 egg, and each hashbrown requires 2 eggs. The restaurant has 600 eggs available. This gives us the constraint $x_1 + 2x_2 \leq 600$.

## 4: Non-negativity constraints

The number of eggs benedicts and hashbrowns cannot be negative, so we have $x_1 \geq 0$ and $x_2 \geq 0$.

## 5: Symbolic representation

The symbolic representation of the problem is:
```json
{
    'sym_variables': [('x1', 'eggs benedicts'), ('x2', 'hashbrowns')],
    'objective_function': '4*x1 + 2*x2',
    'constraints': [
        '10*x1 + 5*x2 <= 5000',
        'x1 + 2*x2 <= 600',
        'x1 >= 0',
        'x2 >= 0'
    ]
}
```

## 6: Gurobi code

Now, let's implement this problem using Gurobi in Python:
```python
import gurobi

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

# Define the variables
x1 = m.addVar(name="eggs_benedicts", lb=0, ub=gurobi.GRB.INFINITY)
x2 = m.addVar(name="hashbrowns", lb=0, ub=gurobi.GRB.INFINITY)

# Set the objective function
m.setObjective(4 * x1 + 2 * x2, gurobi.GRB.MAXIMIZE)

# Add constraints
m.addConstr(10 * x1 + 5 * x2 <= 5000, name="butter_constraint")
m.addConstr(x1 + 2 * x2 <= 600, name="egg_constraint")

# Optimize the model
m.optimize()

# Print the solution
if m.status == gurobi.GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Eggs benedicts: {x1.varValue}")
    print(f"Hashbrowns: {x2.varValue}")
    print(f"Max profit: {m.objVal}")
else:
    print("No optimal solution found.")
```