To solve this optimization problem, we first need to define the decision variables and the objective function. Let's denote:

- \(x_1\) as the amount of the first mix (30% honey-roasted almonds, 70% chocolate-covered almonds) to be prepared in kg.
- \(x_2\) as the amount of the second mix (40% honey-roasted almonds, 60% chocolate-covered almonds) to be prepared in kg.

The objective is to maximize profit. The profit per kg of the first mix is $12, and the profit per kg of the second mix is $15. Thus, the total profit \(P\) can be represented as:

\[ P = 12x_1 + 15x_2 \]

We need to maximize \(P\) under the given constraints:

1. The store has 100 kg of honey-roasted almonds.
2. The store has 150 kg of chocolate-covered almonds.

The amount of honey-roasted almonds used in both mixes must not exceed 100 kg, and the amount of chocolate-covered almonds used must not exceed 150 kg. For the first mix, 30% of \(x_1\) is honey-roasted almonds, and for the second mix, 40% of \(x_2\) is honey-roasted almonds. Similarly, 70% of \(x_1\) and 60% of \(x_2\) are chocolate-covered almonds.

Thus, we have two main constraints:

1. For honey-roasted almonds: \(0.3x_1 + 0.4x_2 \leq 100\)
2. For chocolate-covered almonds: \(0.7x_1 + 0.6x_2 \leq 150\)

Additionally, \(x_1\) and \(x_2\) must be non-negative since we cannot prepare a negative amount of each mix.

Now, let's translate this into Gurobi code in Python:

```python
from gurobipy import *

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

# Define the decision variables
x1 = m.addVar(name="First_Mix", lb=0)
x2 = m.addVar(name="Second_Mix", lb=0)

# Set the objective function: Maximize profit
m.setObjective(12*x1 + 15*x2, GRB.MAXIMIZE)

# Add constraints
m.addConstr(0.3*x1 + 0.4*x2 <= 100, name="Honey_Roasted_Almonds_Constraint")
m.addConstr(0.7*x1 + 0.6*x2 <= 150, name="Chocolate_Covered_Almonds_Constraint")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"First Mix: {x1.x} kg")
    print(f"Second Mix: {x2.x} kg")
    print(f"Max Profit: ${12*x1.x + 15*x2.x}")
else:
    print("No optimal solution found")

```