To solve the given optimization problem, we first need to establish a clear symbolic representation of the variables involved and then translate the objective function and constraints into this symbolic form. Afterward, we will use Gurobi, a powerful optimization software, to find the solution.

### Symbolic Representation

Let's denote:
- \(x_1\) as 'hours worked by Ringo',
- \(x_2\) as 'hours worked by Peggy',
- \(x_3\) as 'hours worked by George',
- \(x_4\) as 'hours worked by Bobby'.

The objective function to maximize is: \(4x_1 + x_2 + x_3 + 6x_4\).

Given the constraints:
1. Ringo's organization score is 13.
2. Peggy has an organization score of 2.
3. George's organization score is 12.
4. Bobby's organization score is 19.
5. The total combined organization score from hours worked by Ringo plus hours worked by Bobby must be 28 or more: \(13x_1 + 19x_4 \geq 28\).
6. The total combined organization score from hours worked by Peggy plus hours worked by Bobby has to be at least 48: \(2x_2 + 19x_4 \geq 48\).
7. The total combined organization score from hours worked by George and hours worked by Bobby should be 93 or less: \(12x_3 + 19x_4 \leq 93\).
8. The total combined organization score from hours worked by Peggy plus hours worked by Bobby must be 214 at a maximum: \(2x_2 + 19x_4 \leq 214\).
9. The total combined organization score from hours worked by Ringo plus hours worked by Peggy plus hours worked by George plus hours worked by Bobby must be less than or equal to 299: \(13x_1 + 2x_2 + 12x_3 + 19x_4 \leq 299\).

### Symbolic Problem Representation
```json
{
    'sym_variables': [('x1', 'hours worked by Ringo'), ('x2', 'hours worked by Peggy'), ('x3', 'hours worked by George'), ('x4', 'hours worked by Bobby')],
    'objective_function': '4*x1 + x2 + x3 + 6*x4',
    'constraints': [
        '13*x1 + 19*x4 >= 28',
        '2*x2 + 19*x4 >= 48',
        '12*x3 + 19*x4 <= 93',
        '2*x2 + 19*x4 <= 214',
        '13*x1 + 2*x2 + 12*x3 + 19*x4 <= 299'
    ]
}
```

### Gurobi Code
```python
from gurobipy import *

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

# Define variables
x1 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="hours_worked_by_Ringo")
x2 = m.addVar(lb=0, vtype=GRB.INTEGER, name="hours_worked_by_Peggy")
x3 = m.addVar(lb=0, vtype=GRB.INTEGER, name="hours_worked_by_George")
x4 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="hours_worked_by_Bobby")

# Define the objective function
m.setObjective(4*x1 + x2 + x3 + 6*x4, GRB.MAXIMIZE)

# Add constraints
m.addConstr(13*x1 + 19*x4 >= 28, "Ringo_and_Bobby_min")
m.addConstr(2*x2 + 19*x4 >= 48, "Peggy_and_Bobby_min")
m.addConstr(12*x3 + 19*x4 <= 93, "George_and_Bobby_max")
m.addConstr(2*x2 + 19*x4 <= 214, "Peggy_and_Bobby_max")
m.addConstr(13*x1 + 2*x2 + 12*x3 + 19*x4 <= 299, "Total_max")

# Optimize model
m.optimize()

# Print solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Hours worked by Ringo: {x1.x}")
    print(f"Hours worked by Peggy: {x2.x}")
    print(f"Hours worked by George: {x3.x}")
    print(f"Hours worked by Bobby: {x4.x}")
else:
    print("No optimal solution found")
```