Combine the chicken, yogurt, and 1½ tablespoons of biryani masala. Mix well. Cover and let marinate for at least 30 minutes.
Rinse the rice until the water runs mostly clear. Soak in fresh water for 20–30 minutes. Drain well.
Heat the oil or ghee in a heavy pot with a tight-fitting lid. Add the sliced onion. Cook over medium heat for 10–12 minutes, stirring often, until golden brown. Set aside a half for the topping.
Add ginger-garlic paste and cook for a minute. Add the chopped tomato to the onions. Cook for 4–5 minutes, until soft. Stir in the remaining biryani masala. Cook for about 30 seconds.
Add the chicken and all its marinade. Stir over medium heat for 4–5 minutes. Cover and cook over low heat for another 5–8 minutes, stirring occasionally. Season with 1/2 tsp salt, or to taste.
Spread the drained rice evenly over the chicken. Pour in 1¼ cups hot water. Add some more salt to taste. Move the rice and chicken around gently to make sure the rice is completely covered with water. Gently level the rice. Season with some more salt. Bring to a gentle simmer.
Cover tightly and reduce the heat to low. Cook for 15 minutes without opening the lid. Check the rice. If it is still firm and the pot looks dry, sprinkle 2 tablespoons hot water over it. Cover and cook for another 3–5 minutes.
Turn off the heat. Leave the pot covered for 10 minutes.
Gently lift and fold the rice with a fork, bringing some chicken up from the bottom. Add the lemon juice, if using. Top with the reserved onions and coriander and serve.