To solve the optimization problem described, we first need to translate the natural language description into a mathematical formulation that can be solved using linear programming techniques. The goal is to maximize revenue given the constraints on production and demand.

Let's denote:
- \(x_s\) as the number of strawberry brownies made,
- \(x_c\) as the number of caramel brownies made.

The objective function, which represents the total revenue, can be written as:
\[ \text{Maximize:} \quad 1.5x_s + 2x_c \]

Given the constraints:
1. At least 50 strawberry brownies are ordered: \( x_s \geq 50 \)
2. At least 75 caramel brownies are ordered: \( x_c \geq 75 \)
3. No more than 100 strawberry brownies can be made: \( x_s \leq 100 \)
4. No more than 150 caramel brownies can be made: \( x_c \leq 150 \)
5. At least twice as many strawberry brownies are made as caramel brownies: \( x_s \geq 2x_c \)

However, upon closer inspection, it becomes clear that the constraint \( x_s \geq 2x_c \) may conflict with the other constraints when trying to maximize revenue, especially considering the upper limits on production. The bakery cannot make more than 100 strawberry brownies but must make at least twice as many strawberry brownies as caramel ones. This means if they make the maximum of 100 strawberry brownies, they could only make up to 50 caramel brownies (\( x_c \leq 50 \)), which contradicts the requirement of making at least 75 caramel brownies.

To correctly model this problem while considering the potential conflict in constraints, we proceed with formulating it as a linear program and then use Gurobi to solve it. However, due to the logical inconsistency pointed out, the problem might be infeasible under these specific conditions.

```python
from gurobipy import *

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

# Define variables
x_s = m.addVar(lb=50, ub=100, vtype=GRB.INTEGER, name="strawberry_brownies")
x_c = m.addVar(lb=75, ub=150, vtype=GRB.INTEGER, name="caramel_brownies")

# Objective function: Maximize revenue
m.setObjective(1.5*x_s + 2*x_c, GRB.MAXIMIZE)

# Additional constraints
m.addConstr(x_s >= 2*x_c, "strawberry_at_least_twice_caramel")

# Optimize model
m.optimize()

# Print solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Strawberry brownies: {x_s.x}")
    print(f"Caramel brownies: {x_c.x}")
    print(f"Revenue: {m.ObjVal}")
else:
    print("No optimal solution found. The problem might be infeasible.")
```