## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize the profit of a fitness company by determining the optimal number of treadmills and stationary bikes to sell and install. The company has limited resources in terms of mover time and setup time.

Let's define the decision variables:

* `treadmills`: the number of treadmills to sell and install
* `stationary_bikes`: the number of stationary bikes to sell and install

The objective function is to maximize the total profit:

`Maximize: 300 * treadmills + 120 * stationary_bikes`

The constraints are:

* Mover time: `30 * treadmills + 15 * stationary_bikes <= 10000`
* Setup time: `50 * treadmills + 30 * stationary_bikes <= 15000`
* Non-negativity: `treadmills >= 0`, `stationary_bikes >= 0`

## Gurobi Code

```python
import gurobi

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

    # Define the decision variables
    treadmills = model.addVar(lb=0, name="treadmills", vtype=gurobi.GRB.CONTINUOUS)
    stationary_bikes = model.addVar(lb=0, name="stationary_bikes", vtype=gurobi.GRB.CONTINUOUS)

    # Define the objective function
    model.setObjective(300 * treadmills + 120 * stationary_bikes, gurobi.GRB.MAXIMIZE)

    # Define the constraints
    model.addConstr(30 * treadmills + 15 * stationary_bikes <= 10000, name="mover_time")
    model.addConstr(50 * treadmills + 30 * stationary_bikes <= 15000, name="setup_time")

    # Optimize the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: treadmills = {treadmills.varValue:.2f}, stationary_bikes = {stationary_bikes.varValue:.2f}")
        print(f"Maximum profit: ${model.objVal:.2f}")
    else:
        print("No optimal solution found")

solve_fitness_company_problem()
```

Note that I've used continuous variables for `treadmills` and `stationary_bikes`, assuming that the company can sell and install fractional units of each product. If the company can only sell and install integer units, you can change the `vtype` argument to `gurobi.GRB.INTEGER`.