Place the chicken in a large bowl with the yogurt, ginger, chili, cloves, lemon juice, garam masala, cardamom seeds, turmeric, and cumin. Leave for at least 1 hour, or preferably overnight to marinate.
Rinse the rice well and leave to soak in a large bowl of water for 30 minutes.
Meanwhile, using the vegetable oil of choice, cook the onions until they are very soft and golden brown
Remove from the pan and set aside.
Bring a large sufuria of water to a boil. Then season the water generously by adding 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 a boil, add the rice, and cook for 2 minutes, so that it is par-cooked. Drain and set aside, removing the whole spices.
Remove the chicken from the fridge. Do not discard the remaining yogurt marinade left at the bottom of the bowl.
Heat oil in a sufuria then place the marinated chicken to brown.
Add the remaining garlic, ginger, chili, garam masala, ground cumin and ground coriander and cook for 3 minutes, or until aromatic.
Add the tomatoes and remaining yogurt marinade with a splash of water to loosen it. Season and stir well
Add rice to the mixture and lower the heat. Cover with the lid and cook for for 45 minutes.
Leave the biryani to stand for 5 minutes, then sprinkle over the raisins for extra flavour and coriander before serving.