Mix 3 tablespoons olive oil, 2 tablespoons Madras curry, 1 tablespoon paprika powder, 2 cloves finely chopped garlic, juice and zest from half a lemon, 1 teaspoon honey, 1 teaspoon ground cinnamon, and 1 teaspoon salt in a bowl to make the marinade.
Chop the bunch of fresh herbs (basil, parsley, and chervil) and mix with 200 g cream cheese. Season to taste with salt and pepper.
Stuff the chicken cavity with the cream cheese and herb mixture.
Chop 100 g Serrano ham and carefully insert pieces between the chicken skin and breast meat. Set aside any remaining ham.
Place the chicken in a plastic bag, add the marinade, seal the bag, and massage the marinade into the chicken from outside the bag. Refrigerate for at least 3 hours.
Preheat oven to 200°C (392°F).
Peel 700 g potatoes, cut into uniform pieces, and pre-cook in boiling salted water for about 10 minutes until partially tender. Drain well.
Peel 2 onions, trim the ends, and cut into eighths lengthwise.
Brush a roasting pan with a little oil, place the chicken in the center, and arrange the potatoes and onions around it.
Roast for about 1 hour, until the chicken reaches an internal temperature of 74°C (165°F) in the thickest part of the thigh.
Remove from oven and scatter the remaining ham over the vegetables. Let rest for 5 minutes before serving.