Marinate the chicken. In a bowl, mix yogurt, lemon zest, lemon juice, garlic, ginger, salt, cumin, coriander, turmeric, and chili powder. Toss in chicken until coated. Let it sit while you prep everything else, or up to 24 hours in the fridge.
Rinse the rice. Rinse basmati under cool water until the water runs mostly clear, about 1 minute. Drain well. This is the difference between fluffy and sticky.
Par-cook the rice. Bring a medium pot of water to a boil. Add 1 tablespoon salt, then add rice. Boil about 5 to 6 minutes, stirring once or twice, until the grains are flexible and swollen but still have a firm center when you bite one (about 70% cooked). Drain immediately and set aside. (Most of that salt goes down the drain with the water, so you will season to taste at the end.)
Build the onion base. In a large heavy pot or Dutch oven, heat oil over medium-high heat. Add sliced onion and a pinch of salt. Cook 10 to 12 minutes, stirring often, until deeply golden with some crisp edges. (Those browned bits are flavor. Do not panic.)
Bloom the spices. Lower heat to medium. Stir in green chili (if using), garam masala, cumin, black pepper, bay leaf, cardamom, and cinnamon. Cook 30 seconds, just until fragrant.
Cook the chicken. Add the marinated chicken and scrape up any browned bits from the bottom. Cook 6 to 8 minutes, stirring occasionally, until the chicken is no longer pink on the outside and coated in a thick masala. It does not need to be fully cooked yet. It will finish during the covered steam.
Add broth and peas. Pour in broth (or water). Stir, then add peas if using. Bring to a gentle simmer for 2 minutes. You want the mixture to look saucy but not soupy before layering.
Layer the rice and herbs. Turn heat to the lowest possible setting. Spoon the par-cooked rice evenly over the chicken mixture. Do not stir. Top with cilantro and mint. If you like nuts, add them here too.
Steam to finish. Cover tightly with a lid. Cook on very low heat 15 minutes (use a heat diffuser if your pot is thin-bottomed or your stove runs hot). Turn off heat and let rest, covered, 10 minutes. This resting time is where everything finishes politely.
Fluff and brighten. Remove lid, squeeze a little fresh lemon juice over the top, and fluff gently with a fork, lifting from the edges so you keep the layers. Check doneness: the chicken should be fully cooked (165°F / 74°C at the thickest pieces) and the rice should be tender. Taste and add more lemon or a pinch of salt if needed.
Serve. Serve hot with raita, extra herbs, and lemon wedges. If anyone asks where the saffron or ghee went, tell them this is the bright weeknight cousin, not the formalwear version.