Mix all the ingredients for the marinade in a bowl and add chicken. Leave for at least 30 minutes.
Pre-heat oven to 180 degrees celcius
Add saffron to the milk and leave it to steep and draw out the colour.
Wash the rice until it runs clear then place in a pan and add water, bring to the boil and leave until water is absorbed. The rice should be par-cooked and remain slightly underdone.
After a few minutes gently fork through the rice working your way to the bottom and transfer to a large bowl to cool.
Heat the ghee and add the sliced onion rings and cook over a medium heat and until caramelised and a lovely dark golden brown (approx. 20 mins).
Remove half the cooked onions and set to one side. Add the ginger, garlic, bay leaves, chillies, cassia bark, black peppercorns, coriander, cumin, cardamoms, salt and turmeric to the pan and stir-fry for a few minutes until fragrant.
Cut the tomatoes into small dices and add to the pan, stir on a gentle heat and cook until they break down to make a thick masala sauce.
Add the marinated chicken to the pan and cook through for 15-20 minutes. Remove from the heat and set to one side.
Bring the biryani together in a greased casserole dish preferably with a lid.
Have your rice, cooked chicken, saffron milk, ghee, caramelised onions and chopped coriander to hand.
Place one third of the rice at the bottom of the dish and sprinkle with some of the saffron milk, coriander, 1 tsp ghee and a few onions. Then spoon half the chicken mixture on top of the rice.
Place another third of the rice on top and sprinkle with the saffron milk, coriander, 1 tsp ghee and a few onions and the remaining chicken mixture.
Finally, top off with all the remaining rice and sprinkle the rest of the saffron milk on top, dot with ghee, all the coriander and caramelised onions.
Place the lid on the casserole dish and place in the oven at 180oC and cook for 30-40 minutes until hot and fragrant.