To solve this problem, we first need to define the variables and the objective function. Let's denote the amount of cream Alpha used in the mixture as $x_1$ (in milligrams) and the amount of cream Beta used as $x_2$ (also in milligrams). The objective is to minimize the total cost of the mixture, which can be calculated as $0.70x_1 + 0.90x_2$.

The constraints are:
- The mixture must contain at least 4 units of compound X. Given that cream Alpha has 2 units/mg and cream Beta has 4.1 units/mg of compound X, this constraint can be written as $2x_1 + 4.1x_2 \geq 4$.
- The mixture must contain at least 8 units of compound Y. With cream Alpha having 2.7 units/mg and cream Beta having 3.2 units/mg of compound Y, this constraint can be expressed as $2.7x_1 + 3.2x_2 \geq 8$.
- Since we cannot have negative amounts of cream, both $x_1$ and $x_2$ must be non-negative.

Therefore, the symbolic representation of the problem is:
```json
{
    'sym_variables': [('x1', 'amount of cream Alpha in mg'), ('x2', 'amount of cream Beta in mg')],
    'objective_function': '0.70*x1 + 0.90*x2',
    'constraints': ['2*x1 + 4.1*x2 >= 4', '2.7*x1 + 3.2*x2 >= 8', 'x1 >= 0', 'x2 >= 0']
}
```

Now, let's implement this problem using Gurobi in Python:
```python
from gurobipy import *

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

# Define the variables
x1 = m.addVar(vtype=GRB.CONTINUOUS, name="cream_alpha", lb=0)
x2 = m.addVar(vtype=GRB.CONTINUOUS, name="cream_beta", lb=0)

# Set the objective function
m.setObjective(0.70*x1 + 0.90*x2, GRB.MINIMIZE)

# Add constraints
m.addConstr(2*x1 + 4.1*x2 >= 4, name="compound_x_constraint")
m.addConstr(2.7*x1 + 3.2*x2 >= 8, name="compound_y_constraint")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Amount of cream Alpha: {x1.x} mg")
    print(f"Amount of cream Beta: {x2.x} mg")
    print(f"Total cost: ${m.objVal:.2f}")
else:
    print("No optimal solution found.")
```