To solve Eli's problem, we need to set up a linear programming model that captures the constraints and objectives described. The decision variables are the number of acres of beans (B) and pumpkins (P) to plant.

1. **Objective Function**: Maximize profit. Given that the profit per acre of beans is $100 and the profit per acre of pumpkins is $110, the objective function can be written as: Maximize 100B + 110P.

2. **Constraints**:
   - Eli has a total of 100 acres available for planting: B + P ≤ 100.
   - Minimum acres of beans to plant: B ≥ 5.
   - Minimum acres of pumpkins to plant: P ≥ 10.
   - Due to labor constraints, he can only plant at most 3 times the quantity of pumpkins as beans: P ≤ 3B.

Given these conditions, we aim to find the values of B and P that maximize profit while adhering to all given constraints.

Here's how this translates into Gurobi code in Python:

```python
from gurobipy import *

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

# Define variables
B = m.addVar(lb=5, name="beans")  # Minimum acres of beans is 5
P = m.addVar(lb=10, name="pumpkins")  # Minimum acres of pumpkins is 10

# Add constraints
m.addConstr(B + P <= 100, name="total_acres")
m.addConstr(P <= 3 * B, name="labor_constraint")

# Objective function: Maximize profit
m.setObjective(100 * B + 110 * P, GRB.MAXIMIZE)

# Optimize model
m.optimize()

# Print solution
if m.status == GRB.OPTIMAL:
    print(f"Optimal acres of beans to plant: {B.x}")
    print(f"Optimal acres of pumpkins to plant: {P.x}")
    print(f"Maximum profit achievable: ${m.objVal}")
else:
    print("Problem is infeasible or unbounded.")
```