To solve this linear programming optimization problem, we first need to define the decision variables and the objective function. Let's denote:

- \(x_d\) as the number of bouquets of daisies sold.
- \(x_l\) as the number of bouquets of lilies sold.

The profit per bouquet of daisies is $5, and the profit per bouquet of lilies is $4. Therefore, the total profit \(P\) can be represented by the objective function:

\[ P = 5x_d + 4x_l \]

We aim to maximize this profit.

Next, we define the constraints based on the given limitations:

1. **Clipping Time Constraint**: Each bouquet of daisies requires 3 minutes of clipping, and each bouquet of lilies requires 1 minute of clipping. The total available time for clipping is 1000 minutes. This can be represented as:

\[ 3x_d + x_l \leq 1000 \]

2. **Packaging Time Constraint**: Each bouquet of daisies needs 2 minutes of packaging, and each bouquet of lilies requires 3 minutes of packaging. The total available time for packaging is 650 minutes. This gives us:

\[ 2x_d + 3x_l \leq 650 \]

3. **Minimum Daisies Constraint**: At least 25 bouquets of daisies must be picked, which translates to:

\[ x_d \geq 25 \]

4. **Non-Negativity Constraints**: Since the number of bouquets cannot be negative, we have:

\[ x_d \geq 0 \]
\[ x_l \geq 0 \]

Now, let's formulate this problem in Gurobi code:

```python
from gurobipy import *

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

# Decision variables
x_d = m.addVar(lb=25, vtype=GRB.CONTINUOUS, name="daisies")
x_l = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="lilies")

# Objective function: Maximize profit
m.setObjective(5*x_d + 4*x_l, GRB.MAXIMIZE)

# Constraints
m.addConstr(3*x_d + x_l <= 1000, "clipping_time")
m.addConstr(2*x_d + 3*x_l <= 650, "packaging_time")

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Number of daisies: {x_d.x}")
    print(f"Number of lilies: {x_l.x}")
    print(f"Total profit: {m.objVal}")
else:
    print("No optimal solution found.")
```