## Problem Description and Formulation

The problem requires minimizing the objective function: $2 \times \text{hours worked by Laura} + 7 \times \text{hours worked by Peggy}$, subject to various constraints related to work quality ratings and organization scores.

## Constraints

1. Laura's work quality rating is 6.
2. Laura's organization score is 5.
3. Peggy's work quality rating is 12.
4. Peggy's organization score is 7.
5. The total combined work quality rating from hours worked by Laura and Peggy should be at least 73.
6. The total combined organization score from hours worked by Laura and Peggy should be at least 31.
7. $-5 \times \text{hours worked by Laura} + 8 \times \text{hours worked by Peggy} \geq 0$.
8. The total combined work quality rating from hours worked by Laura and Peggy should be less than or equal to 127.
9. The total combined organization score from hours worked by Laura and Peggy should be less than or equal to 99.

## Gurobi Code

```python
import gurobipy as gp

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

# Define variables
laura_hours = m.addVar(name="laura_hours", lb=0)  # Assuming hours cannot be negative
peggy_hours = m.addVar(name="peggy_hours", lb=0)  # Assuming hours cannot be negative

# Objective function
m.setObjective(2 * laura_hours + 7 * peggy_hours, gp.GRB.MINIMIZE)

# Constraints
m.addConstr(6 * laura_hours + 12 * peggy_hours >= 73, name="work_quality_min")
m.addConstr(5 * laura_hours + 7 * peggy_hours >= 31, name="organization_min")
m.addConstr(-5 * laura_hours + 8 * peggy_hours >= 0, name="combined_constraint")
m.addConstr(6 * laura_hours + 12 * peggy_hours <= 127, name="work_quality_max")
m.addConstr(5 * laura_hours + 7 * peggy_hours <= 99, name="organization_max")

# Laura's individual work quality and organization score constraints
# These are already implied by the problem statement but explicitly adding for clarity
m.addConstr(6 * laura_hours == 6, name="laura_work_quality")
m.addConstr(5 * laura_hours == 5, name="laura_organization")
# Peggy's individual work quality and organization score constraints
m.addConstr(12 * peggy_hours == 12, name="peggy_work_quality")
m.addConstr(7 * peggy_hours == 7, name="peggy_organization")

# Solve the model
m.solve()

# Print the solution
if m.status == gp.GRB.OPTIMAL:
    print("Optimal Solution:")
    print(f"Laura's hours: {laura_hours.varValue}")
    print(f"Peggy's hours: {peggy_hours.varValue}")
    print(f"Objective: {m.objVal}")
else:
    print("No optimal solution found")
```