Place the chicken drumsticks in a large bowl with the yogurt, ginger, chilli, cloves, lemon juice, garam masala, cardamom seeds, turmeric and cumin. Leave for at least 1 hour, or preferably overnight.
Heat 1 tbsp ghee in a large pan and cook the onions for 35-40 minutes, stirring occasionally over a low-medium heat until they are very soft and golden brown all over. Remove from the pan and set aside. Meanwhile, rinse the rice well and leave to soak in a large bowl of water for 30 minutes.
Bring a large pan of water to the boil. Season the water generously and add 1 cinnamon stick, 2 cloves, 2 cardamom pods and 1 bay leaf, then set aside to infuse for 30 minutes. Bring the water back to the boil, add the rice and cook for 2 minutes, so that it is par cooked. Drain and set aside, removing the whole spices.
Heat 1 tbsp ghee in a large high-sided pan with a lid or a casserole pot and brown the chicken drumsticks all over, seasoning as you go. Do not discard the remaining yogurt marinade left at the bottom of the bowl. Remove the chicken drumsticks from the pan, then add the remaining 1 tbsp ghee to the pan, followed by the garlic, ginger, chilli, garam masala, ground cumin and ground coriander. Add the remaining cinnamon stick, cloves, cardamom pods and bay leaf and cook for 3 minutes, until aromatic. Add the tomatoes and remaining yogurt marinade with a splash of water to loosen it. Season and stir well.
Meanwhile, heat the milk with the saffron, then remove from the heat and leave to infuse for 5 minutes.
Place one third of the rice on the bottom of the pan on top of the sauce, topped with one third of the onions and raisins and half the chicken drumsticks. Top with another third of rice, the remaining chicken drumsticks and another third of the onions and raisins. Top with the remaining rice, making sure you can see the drumsticks poking through, and sprinkle over the remaining onions and raisins. Carefully pour over the saffron-infused milk so that it is evenly distributed. Cover with the lid and place over a very low heat on the hob for 45 minutes.
Leave the biryani to stand for 5 minutes, then sprinkle over the almonds and coriander to serve.