Combine all marinade ingredients and coat the chicken thoroughly. Marinate 8–24 hours, refrigerated. Bring to room temperature before cooking.
Soak saffron in warm milk. Rinse rice until water runs clear, then soak 30 minutes and drain.
Bring a large pot of water to a rolling boil. Add bay leaves, cardamom, cloves, cinnamon, and salt. Add rice and cook 5–6 minutes, until the grains are softened on the outside but still firm at the core (~70% cooked). Drain immediately and spread out to release steam.
Preheat oven to 350°F. Heat oil and ghee over medium-high heat. Add onions and fry, stirring frequently, until deeply golden brown and crisp, about 18–22 minutes. Remove and reserve half the onions. Leave the rest and all the fat in the pot.
Add marinated chicken and all marinade to the pot. Spread evenly. Cook 8–10 minutes, stirring once or twice, until the yogurt has broken, oil begins to separate, and the chicken is about 70% cooked. Stir in half the mint and cilantro, then level the surface.
Spread the par-cooked rice evenly over the chicken. Top with reserved fried onions, remaining mint and cilantro, and drizzle saffron milk evenly over the surface.
Cover tightly with an airtight lid or foil. Transfer to the oven and cook 25–30 minutes.
Rest, sealed, for 15 minutes. Gently fluff from the edges, lifting rice and chicken together. (Optional) Serve with raita and lemon wedges.