To solve this optimization problem, we first need to define the decision variables and the objective function. Let's denote:
- \(x\) as the number of blue t-shirts made,
- \(y\) as the number of dark blue t-shirts made.

The objective is to maximize profit. Given that a blue t-shirt yields $10 in profit and a dark blue t-shirt yields $15, our objective function can be written as:
\[ \text{Maximize:} \quad 10x + 15y \]

Now, let's consider the constraints based on the resources available:
1. **Dye Constraint**: Each blue t-shirt requires 3 units of dye, and each dark blue t-shirt requires 5 units of dye. The company has 1000 units of dye available.
\[ 3x + 5y \leq 1000 \]

2. **Water Constraint**: Blue t-shirts require 5 units of water each, and dark blue t-shirts require 4 units of water each. There are 1200 units of water available.
\[ 5x + 4y \leq 1200 \]

3. **Worker Minutes Constraint**: It takes 30 worker minutes to make a blue t-shirt and 25 worker minutes for a dark blue t-shirt, with 8000 worker minutes available.
\[ 30x + 25y \leq 8000 \]

4. **Non-Negativity Constraints**: The number of t-shirts cannot be negative.
\[ x \geq 0 \]
\[ y \geq 0 \]

This problem is a linear programming problem, which can be solved using Gurobi in Python.

```python
from gurobipy import *

# Create a model
m = Model("Clothing_Company_Profit_Optimization")

# Define decision variables
x = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="blue_tshirts")
y = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="dark_blue_tshirts")

# Objective function: Maximize profit
m.setObjective(10*x + 15*y, GRB.MAXIMIZE)

# Constraints
m.addConstr(3*x + 5*y <= 1000, "dye_constraint")
m.addConstr(5*x + 4*y <= 1200, "water_constraint")
m.addConstr(30*x + 25*y <= 8000, "worker_minutes_constraint")

# Solve the model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Blue T-Shirts: {x.x}")
    print(f"Dark Blue T-Shirts: {y.x}")
    print(f"Maximum Profit: ${m.objVal}")
else:
    print("No optimal solution found.")
```