Combine the marinade ingredients in a bowl with the chicken and marinate for one hour.
Fry sliced onions in hot oil for 15 minutes until golden-brown, then drain and set aside.
Fry whole spices for one minute in 45ml of the onion oil.
Add chicken and marinade to the pan and simmer, then stir in tomatoes and salt.
Cook chicken for 20 minutes until the sauce is thick and coating the meat.
Boil the soaked rice in salted water for 7 minutes until tender but firm, then drain.
Add 45ml water and 50g ghee to a heavy pot, then layer one third of the rice.
Sprinkle saffron milk, rosewater, half the chicken, and a third of the onions over the rice.
Repeat the layers, finishing with rice, saffron milk, rosewater, and a drizzle of ghee.
Stean over high heat until visible, then reduce to very low and cook for 30 minutes.
Spoon onto a platter and garnish with remaining onions, roasted cashews, and pistachios.