## Problem Description and Formulation

The toy company aims to maximize profit by producing bear and dog plush toys under certain constraints. Let's denote the number of bear plush toys as \(B\) and the number of dog plush toys as \(D\).

1. **Time Constraint**: Each bear takes 15 minutes to make, and each dog takes 12 minutes. The company has 1000 minutes available. This can be represented as:
\[ 15B + 12D \leq 1000 \]

2. **Bear vs. Dog Production Constraint**: The company must make at least two times as many bears as dogs:
\[ B \geq 2D \]

3. **Non-Negativity Constraint**: The number of bears and dogs cannot be negative:
\[ B \geq 0, D \geq 0 \]

4. **Objective Function**: The profit per bear is $4, and the profit per dog is $5. The company wants to maximize profit \(P\):
\[ P = 4B + 5D \]

## Gurobi Code

To solve this linear programming problem using Gurobi, we will use the Gurobi Python interface. First, ensure you have Gurobi installed in your Python environment. You can install it via pip:
```bash
pip install gurobi
```

Here's the Gurobi code for the problem:

```python
import gurobi as gp

# Create a new model
m = gp.Model("Bear_Dog_Production")

# Define variables
B = m.addVar(name="Bears", vtype=gp.GRB.INTEGER, lb=0)
D = m.addVar(name="Dogs", vtype=gp.GRB.INTEGER, lb=0)

# Objective function: Maximize profit
m.setObjective(4 * B + 5 * D, sense=gp.GRB.MAXIMIZE)

# Constraints
m.addConstr(15 * B + 12 * D <= 1000, name="Time_Constraint")
m.addConstr(B >= 2 * D, name="Bear_Dog_Constraint")

# Optimize
m.optimize()

# Print solution
if m.status == gp.GRB.OPTIMAL:
    print(f"Optimal Solution: Bears = {B.varValue}, Dogs = {D.varValue}")
    print(f"Max Profit: ${4 * B.varValue + 5 * D.varValue}")
else:
    print("No optimal solution found.")
```