To solve this problem, we first need to define the decision variables and the objective function. Let's denote the number of train trips as $t$ and the number of car trips as $c$. The objective is to maximize the total number of oranges sent, which can be represented as $500t + 200c$.

The constraints are:
1. Budget constraint: The total cost of sending oranges by train and car cannot exceed $500. This gives us the inequality $50t + 30c \leq 500$.
2. Scheduling issue constraint: The number of train trips cannot exceed the number of car trips, which translates to $t \leq c$.
3. Non-negativity constraints: Both $t$ and $c$ must be non-negative since they represent the number of trips.

Now, let's translate these into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Orange Farm Optimization")

# Define decision variables
t = m.addVar(vtype=GRB.INTEGER, name="train_trips")
c = m.addVar(vtype=GRB.INTEGER, name="car_trips")

# Objective function: Maximize the total number of oranges sent
m.setObjective(500*t + 200*c, GRB.MAXIMIZE)

# Budget constraint
m.addConstr(50*t + 30*c <= 500, "budget_constraint")

# Scheduling issue constraint
m.addConstr(t <= c, "scheduling_issue_constraint")

# Non-negativity constraints (implicitly handled by addVar for integer variables)

# Optimize the model
m.optimize()

# Print the solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Number of train trips: {t.x}")
    print(f"Number of car trips: {c.x}")
    print(f"Total oranges sent: {500*t.x + 200*c.x}")
else:
    print("No optimal solution found. The problem might be infeasible.")
```