Rinse the basmati rice until the water is clear, then soak it for 30 minutes. Boil water in a large pot with bay leaves, cardamoms, cloves, cinnamon, and a pinch of salt. Cook the rice until it’s 70-80% done, still slightly firm, then drain and set aside.
Mix chicken with yogurt, ginger-garlic paste, turmeric, chili powder, cumin, garam masala, lemon juice, and salt. Massage the spices into the chicken, cover, and refrigerate for at least an hour or overnight for rich flavor.
Heat oil in a heavy-bottomed pan and cook sliced onions until golden brown. Add chopped tomatoes, turmeric, and biryani masala, then stir until it forms a thick, fragrant paste.
Add the marinated chicken (including the marinade) to the masala. Cook on medium heat for about 20 minutes, stirring occasionally, until the chicken is fully cooked but still juicy.
Layer the cooked chicken at the bottom of a pot, then cover with half the rice. Sprinkle chopped cilantro, mint, and half the saffron milk. Repeat with another layer of chicken, the remaining rice, and garnish.
Seal the pot tightly with a lid (use a clean kitchen towel under the lid for best results). Cook on low heat for 20 minutes to trap the steam, then rest for 10 minutes before serving.