Combine all the marinade ingredients, add the chicken pieces, coat, and set aside to marinate for about 1 hour.
Heat the vegetable oil in a skillet until hot and add onions. Fry for 10-15 minutes, until golden brown. Remove from pan and drain on paper towel. Set aside.
Remove the oil from a pan leaving about 3 tablespoons of it. Add the whole cloves, cinnamon stick, cardamom pods, bay leaves, cumin seeds and fry for 1 minute. Add the chicken together with the marinade, bring to a simmer, and stir in the tomatoes and salt. Simmer over medium heat for 20 minutes, until the chicken is cooked through. The sauce should be really dry by this stage.
Drain the soaked rice. In a large pot, bring salted water to boil. Add the rice and cook for 5-7 minutes, until the rice is just tender, but still firm. Drain well.
Now to the assembly. Take a deep, heavy based pot. Pour 3 tablespoons of water and add half the ghee into it. Now add ⅓ of the rice. If you have the saffron milk, sprinkle over about ⅓ of it. Spread the half of the chicken mixture and ⅓ of the fried onions. Now repeat the layer with another ⅓ of the rice, ⅓ of the saffron milk, the rest of the chicken, and another ⅓ of the fried onions. Top with the remaining rice and remaining saffron milk. Don't use the remaining fried onions for now, set them aside. Drizzle the remaining ghee around the edges.
Cover with a well-fitting lid. Cook over a very low heat for 30 minutes. Serve in a large plate, topped with the rest of the fried onions and toasted cashews. Enjoy!