To solve this linear programming optimization problem, we first need to define the decision variables, objective function, and constraints based on the given information.

Let's denote:
- \(x\) as the number of hand-bags produced,
- \(y\) as the number of backpacks produced.

The objective is to maximize profit. Given that each hand-bag results in a profit of $75 and each backpack results in a profit of $60, the objective function can be written as:
\[ \text{Maximize:} \quad 75x + 60y \]

Now, let's consider the constraints:
1. **Sewing Time Constraint**: Each hand-bag requires 6 minutes of sewing, and each backpack requires 7 minutes of sewing. There are 400 minutes available for sewing.
\[ 6x + 7y \leq 400 \]

2. **Painting Time Constraint**: Each hand-bag requires 3 minutes of painting, and each backpack requires 5 minutes of painting. There are 600 minutes available for painting.
\[ 3x + 5y \leq 600 \]

3. **Non-Negativity Constraints**: The number of hand-bags and backpacks produced cannot be negative.
\[ x \geq 0, y \geq 0 \]

Given these definitions, we can now formulate the Gurobi code to solve this linear programming problem.

```python
from gurobipy import *

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

# Define the decision variables
x = m.addVar(vtype=GRB.CONTINUOUS, name="hand-bags", lb=0)
y = m.addVar(vtype=GRB.CONTINUOUS, name="backpacks", lb=0)

# Set the objective function: Maximize profit
m.setObjective(75*x + 60*y, GRB.MAXIMIZE)

# Add constraints
m.addConstr(6*x + 7*y <= 400, "sewing_time")
m.addConstr(3*x + 5*y <= 600, "painting_time")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print(f"Optimal solution found: Produce {x.x:.0f} hand-bags and {y.x:.0f} backpacks.")
    print(f"Maximum profit: ${75*x.x + 60*y.x:.2f}")
else:
    print("No optimal solution found")
```