Mix together 1/2 cups fresh yoghurt, 2 tbsp garam masala, 1 tsp each minced ginger, garlic and salt.
Rub the shanks with the mixture and marinatein the fridge for minimum 2 hours or overnight.
Transfer into a large oven proof casserole. Add 300ml stock or water, 1 cinnamon stick, 2 bay leaves, 4 cloves, 4 green cardamoms and 1 tsp black peppercorns. Braise in the oven at 170C for 2.5-3 hours until completely tender and falling off the bone.
Pull the meat off the bone and discard the whole spices. Set aside.
Prepare the caramelized shallots:
Heat 3 tbsp olive oil in a pan to medium and fry the shallots for 10-15 minutes. They should become deep golden and crispy but not burnt.
Add the lamb and season with 1/2 tsp salt and 2 tsp garam masala. Stir in half of the onions.
Prepare the rice:
Place saffron threads into a bowl with 2 tbsp warm water.
Arrange the rice in an even layer on top of the eggplant and lamb mixture.
Add the whole spices (1 star anise, 4 cloves and 5 green cardamom pods) and pour in hot water to completely cover the rice.
Season with more salt and add the crumbled saffron with its water.
Cover and cook for about 5 mins on low heat, then check the rice and add more boiling water. Keep adding water little by little until the rice is al dente.
To serve:
Discard the whole spice.
Fluff the rice with a fork.
Stir in fresh coriander leaves and garnish with the remaining onions.