## Problem Description and Formulation

Robert needs to transport pumpkins using trucks and vans. The goal is to maximize the number of pumpkins transported given the constraints on cost and the number of trucks and vans.

### Decision Variables
- \(T\): The number of trucks used.
- \(V\): The number of vans used.

### Objective Function
Maximize the total number of pumpkins transported: \(40T + 25V\).

### Constraints
1. **Cost Constraint**: The total cost must not exceed $300. Trucks cost $15 per trip, and vans cost $10 per trip. So, \(15T + 10V \leq 300\).
2. **Truck and Van Constraint**: The number of trucks must not exceed the number of vans: \(T \leq V\).
3. **Non-Negativity Constraint**: The number of trucks and vans must be non-negative: \(T \geq 0, V \geq 0\).
4. **Integer Constraint**: Since \(T\) and \(V\) represent the number of trucks and vans, they must be integers: \(T \in \mathbb{Z}, V \in \mathbb{Z}\). However, for linear programming, we first solve without this constraint and then round if necessary.

## Gurobi Code

```python
import gurobi

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

    # Decision variables
    T = model.addVar(lb=0, name="T", vtype=gurobi.GRB.INTEGER)  # Number of trucks
    V = model.addVar(lb=0, name="V", vtype=gurobi.GRB.INTEGER)  # Number of vans

    # Objective function: Maximize the total number of pumpkins transported
    model.setObjective(40 * T + 25 * V, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(15 * T + 10 * V <= 300, name="Cost_Constraint")  # Cost constraint
    model.addConstr(T <= V, name="Truck_Van_Constraint")  # Truck and van constraint

    # Solve the model
    model.optimize()

    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: Trucks = {T.varValue}, Vans = {V.varValue}")
        print(f"Maximum pumpkins transported: {40 * T.varValue + 25 * V.varValue}")
    elif model.status == gurobi.GRB.INFEASIBLE:
        print("The model is infeasible")
    else:
        print("The model has a non-optimal status")

solve_pumpkin_transport()
```