```json
{
  "sym_variables": [
    ("x0", "hours worked by Bill"),
    ("x1", "hours worked by Laura"),
    ("x2", "hours worked by Peggy"),
    ("x3", "hours worked by John"),
    ("x4", "hours worked by Dale"),
    ("x5", "hours worked by Paul")
  ],
  "objective_function": "9*x0**2 + 6*x0*x1 + 2*x0*x4 + 3*x1*x2 + 7*x1*x5 + 7*x2*x4 + 9*x2*x5 + 6*x3**2 + 4*x3*x4 + 7*x0 + 1*x2 + 3*x3 + 9*x4 + 7*x5",
  "constraints": [
    "19*x1 + 9*x5 >= 52",
    "6*x0 + 19*x1 >= 56",
    "14*x3**2 + 9*x5**2 >= 21",
    "6*x0**2 + 19*x1**2 + 22*x4**2 >= 56",
    "28*x2**2 + 22*x4**2 + 9*x5**2 >= 56",
    "19*x1 + 22*x4 + 9*x5 >= 56",
    "19*x1 + 14*x3 + 9*x5 >= 56",
    "6*x0 + 28*x2 + 14*x3 >= 56",
    "6*x0**2 + 19*x1**2 + 22*x4**2 >= 39",
    "28*x2 + 22*x4 + 9*x5 >= 39",
    "19*x1 + 22*x4 + 9*x5 >= 39",
    "19*x1 + 14*x3 + 9*x5 >= 39",
    "6*x0 + 28*x2 + 14*x3 >= 39",
    "6*x0 + 19*x1 + 22*x4 >= 33",
    "28*x2 + 22*x4 + 9*x5 >= 33",
    "19*x1 + 22*x4 + 9*x5 >= 33",
    "19*x1 + 14*x3 + 9*x5 >= 33",
    "6*x0**2 + 28*x2**2 + 14*x3**2 >= 33",
    "6*x0 + 19*x1 + 22*x4 >= 48",
    "28*x2 + 22*x4 + 9*x5 >= 48",
    "19*x1**2 + 22*x4**2 + 9*x5**2 >= 48",
    "19*x1 + 14*x3 + 9*x5 >= 48",
    "6*x0**2 + 28*x2**2 + 14*x3**2 >= 48",
    "6*x0 + 19*x1 + 22*x4 >= 58",
    "28*x2 + 22*x4 + 9*x5 >= 58",
    "19*x1 + 22*x4 + 9*x5 >= 58",
    "19*x1**2 + 14*x3**2 + 9*x5**2 >= 58",
    "6*x0 + 28*x2 + 14*x3 >= 58",
    "29*x0**2 + 1*x1**2 + 2*x4**2 >= 104",
    "29*x0 + 20*x2 + 2*x4 >= 104",
    "29*x0 + 1*x1 + 22*x3 >= 104",
    "29*x0 + 1*x1 + 2*x4 >= 110",
    "29*x0**2 + 20*x2**2 + 2*x4**2 >= 110",
    "29*x0 + 1*x1 + 22*x3 >= 110",
    "29*x0 + 1*x1 + 2*x4 >= 170",
    "29*x0**2 + 20*x2**2 + 2*x4**2 >= 170",
    "29*x0 + 1*x1 + 22*x3 >= 170",
    "30*x2 + 29*x4 + 29*x5 >= 124",
    "25*x0**2 + 6*x1**2 + 29*x4**2 >= 124",
    "30*x2**2 + 21*x3**2 + 29*x5**2 >= 124",
    "25*x0**2 + 21*x3**2 + 29*x5**2 >= 124",
    "21*x3**2 + 29*x4**2 + 29*x5**2 >= 124",
    "25*x0**2 + 6*x1**2 + 21*x3**2 >= 124",
    "25*x0 + 6*x1 + 30*x2 >= 124",
    "6*x1 + 21*x3 + 29*x5 >= 124",
    "6*x1**2 + 21*x3**2 + 29*x4**2 >= 124",
    "14*x0 + 26*x5 <= 103",
    "28*x2 + 14*x3 <= 249",
    "6*x0 + 19*x1 <= 229",
    "19*x1 + 22*x4 <= 268",
    "28*x2 + 22*x4 <= 336",
    "14*x3 + 22*x4 <= 172",
    "19*x1 + 14*x3 <= 140",
    "19*x1 + 9*x5 <= 164",
    "6*x0**2 + 22*x4**2 <= 266",
    "6*x0 + 14*x3 <= 102",
    "14*x3 + 9*x5 <= 249",
    "6*x0**2 + 28*x2**2 + 22*x4**2 <= 203",
    "19*x1**2 + 28*x2**2 + 14*x3**2 <= 169",
    "6*x0 + 19*x1 + 28*x2 + 14*x3 + 22*x4 + 9*x5 <= 169",
    "20*x2 + 23*x5 <= 897",
    "29*x0**2 + 22*x3**2 <= 400",
    "29*x0**2 + 23*x5**2 <= 650",
    "22*x3 + 23*x5 <= 1179",
    "1*x1 + 2*x4 <= 1163",
    "29*x0 + 2*x4 <= 605",
    "1*x1**2 + 22*x3**2 <= 859",
    "29*x0 + 1*x1 <= 703",
    "20*x2 + 22*x3 <= 1034",
    "1*x1 + 20*x2 <= 492",
    "2*x4 + 23*x5 <= 419",
    "1*x1 + 23*x5 <= 493",
    "29*x0 + 2*x4 + 23*x5 <= 496",
    "29*x0 + 1*x1 + 20*x2 + 22*x3 + 2*x4 + 23*x5 <= 496",
    "21*x3 + 29*x5 <= 764",
    "30*x2 + 21*x3 <= 315",
    "25*x0 + 6*x1 + 30*x2 + 21*x3 + 29*x4 + 29*x5 <= 315",
    "14*x0 + 26*x5 >= 124"
    
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
bill = model.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Bill")
laura = model.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Laura")
peggy = model.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Peggy")
john = model.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="John")
dale = model.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Dale")
paul = model.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Paul")


# Set objective function
model.setObjective(9*bill**2 + 6*bill*laura + 2*bill*dale + 3*laura*peggy + 7*laura*paul + 7*peggy*dale + 9*peggy*paul + 6*john**2 + 4*john*dale + 7*bill + 1*peggy + 3*john + 9*dale + 7*paul, gp.GRB.MAXIMIZE)

# Add constraints -  likelihood to quit index
model.addConstr(19*laura + 9*paul >= 52)
model.addConstr(6*bill + 19*laura >= 56)
model.addConstr(14*john**2 + 9*paul**2 >= 21)
# ... (add all other constraints from the JSON "constraints" field)
model.addConstr(14*bill + 26*paul >= 124)


# Optimize model
model.optimize()

# Print results
if model.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % model.objVal)
    print('Bill:', bill.x)
    print('Laura:', laura.x)
    print('Peggy:', peggy.x)
    print('John:', john.x)
    print('Dale:', dale.x)
    print('Paul:', paul.x)

elif model.status == gp.GRB.INFEASIBLE:
    print("The model is infeasible.")
else:
    print(f"Optimization ended with status {model.status}")

```