## Step 1: Define the symbolic representation of the problem

Let's denote the amount of money invested in the textile industry as \(x_1\) and the amount of money invested in the telecom industry as \(x_2\). The objective is to maximize the return on investment, which can be represented as \(0.06x_1 + 0.08x_2\).

## Step 2: Identify the constraints

The family has $500,000 to invest, so \(x_1 + x_2 \leq 500,000\). 
The family wants to place a minimum of 30% of the investment in the textile industry, so \(x_1 \geq 0.3 \times 500,000\).
The family wants to place at most 50% of the investment in the telecom industry, so \(x_2 \leq 0.5 \times 500,000\).
Also, \(x_1 \geq 0\) and \(x_2 \geq 0\) since the amounts invested cannot be negative.

## 3: Express the problem in a symbolic notation

The symbolic variables are:
- \(x_1\), 'textile industry investment'
- \(x_2\), 'telecom industry investment'

The objective function is: \(0.06x_1 + 0.08x_2\)

The constraints are:
- \(x_1 + x_2 \leq 500,000\)
- \(x_1 \geq 0.3 \times 500,000\)
- \(x_2 \leq 0.5 \times 500,000\)
- \(x_1 \geq 0\)
- \(x_2 \geq 0\)

## 4: Convert the problem into a Gurobi code

```json
{
'sym_variables': [('x1', 'textile industry investment'), ('x2', 'telecom industry investment')],
'objective_function': '0.06x1 + 0.08x2',
'constraints': [
    'x1 + x2 <= 500000',
    'x1 >= 0.3 * 500000',
    'x2 <= 0.5 * 500000',
    'x1 >= 0',
    'x2 >= 0'
]
}
```

## 5: Write the Gurobi code in Python

```python
import gurobi

def solve_investment_problem():
    # Create a new model
    model = gurobi.Model()

    # Define the variables
    x1 = model.addVar(name="textile_investment", lb=0)
    x2 = model.addVar(name="telecom_investment", lb=0)

    # Objective function: maximize 0.06x1 + 0.08x2
    model.setObjective(0.06 * x1 + 0.08 * x2, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(x1 + x2 <= 500000)
    model.addConstr(x1 >= 0.3 * 500000)
    model.addConstr(x2 <= 0.5 * 500000)

    # Optimize the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal investment in textile industry: ", x1.varValue)
        print("Optimal investment in telecom industry: ", x2.varValue)
        print("Maximum return: ", model.objVal)
    else:
        print("The model is infeasible")

solve_investment_problem()
```