## Problem Description and Formulation

The problem is a linear programming optimization problem. The goal is to maximize profit by determining the optimal quantities of two mixes of almonds to produce, given the availability of honey-roasted and chocolate-covered almonds.

Let's define the decision variables:
- \(x_1\): the amount of the first mix to produce (in kg)
- \(x_2\): the amount of the second mix to produce (in kg)

The objective function to maximize profit is:
\[ \text{Maximize:} \quad 12x_1 + 15x_2 \]

Subject to the following constraints:
1. Availability of honey-roasted almonds: \( 0.3x_1 + 0.4x_2 \leq 100 \)
2. Availability of chocolate-covered almonds: \( 0.7x_1 + 0.6x_2 \leq 150 \)
3. Non-negativity constraints: \( x_1 \geq 0, x_2 \geq 0 \)

## Gurobi Code

```python
import gurobi

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

    # Define the decision variables
    x1 = model.addVar(name="first_mix", lb=0, ub=gurobi.GRB.INFINITY)
    x2 = model.addVar(name="second_mix", lb=0, ub=gurobi.GRB.INFINITY)

    # Define the objective function
    model.setObjective(12 * x1 + 15 * x2, gurobi.GRB.MAXIMIZE)

    # Add constraints
    model.addConstr(0.3 * x1 + 0.4 * x2 <= 100, name="honey_roasted_constraint")
    model.addConstr(0.7 * x1 + 0.6 * x2 <= 150, name="chocolate_covered_constraint")

    # Optimize the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution found. First mix: {x1.varValue} kg, Second mix: {x2.varValue} kg")
        print(f"Maximum profit: ${model.objVal:.2f}")
    else:
        print("The model is infeasible or unbounded.")

# Run the function
solve_almond_mix_problem()
```