## Problem Description and Formulation

The problem is a classic example of a linear programming problem. Elias Cookie wants to maximize profit by selling chocolate and strawberry cookies under certain constraints.

### Decision Variables

- \(x\): Number of chocolate cookies to sell
- \(y\): Number of strawberry cookies to sell

### Objective Function

The objective is to maximize profit. Given that the profit per chocolate cookie is $1.5 and per strawberry cookie is $1.2, the objective function can be formulated as:

\[ \text{Maximize:} \quad 1.5x + 1.2y \]

### Constraints

1. **Total Cookies Constraint**: The store can make at most 200 cookies total.
\[ x + y \leq 200 \]

2. **Minimum Chocolate Cookies Constraint**: They must sell at least 50 chocolate cookies.
\[ x \geq 50 \]

3. **Minimum Strawberry Cookies Constraint**: They must sell at least 70 strawberry cookies.
\[ y \geq 70 \]

4. **Maximum Chocolate Cookies Constraint**: Due to raw material shortages, they can make at most 120 chocolate cookies.
\[ x \leq 120 \]

5. **Maximum Strawberry Cookies Constraint**: Due to raw material shortages, they can make at most 150 strawberry cookies.
\[ y \leq 150 \]

6. **Non-Negativity Constraints**: They cannot sell a negative number of cookies.
\[ x \geq 0, y \geq 0 \]
However, these are partially covered by the minimum constraints.

## Gurobi Code

```python
import gurobi

def solve_cookie_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    x = model.addVar(lb=50, ub=120, name="Chocolate Cookies")
    y = model.addVar(lb=70, ub=150, name="Strawberry Cookies")

    # Objective function: Maximize 1.5x + 1.2y
    model.setObjective(1.5 * x + 1.2 * y, gurobi.GRB.MAXIMIZE)

    # Total cookies constraint: x + y <= 200
    model.addConstraint(x + y <= 200)

    # Solve the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal Solution: Chocolate Cookies = {x.varValue}, Strawberry Cookies = {y.varValue}")
        print(f"Max Profit: {model.objVal}")
    else:
        print("The model is infeasible")

solve_cookie_problem()
```

This code defines the problem in Gurobi, solving for the optimal number of chocolate and strawberry cookies that Elias Cookie should sell to maximize profit under the given constraints.