Heat oil in a deep pan and fry the whole garam masala until fragrant.
Add chopped tomatoes and cook until soft and pulpy.
Stir in ginger-garlic paste and chopped chilli with a splash of water to prevent sticking.
Add all dry spices plus biryani masala. Cook for 1–2 minutes until aromatic.
Pour in water and yogurt. Bring to a boil.
Add halved potatoes, stir gently, cover, and cook on low heat for 5–6 minutes.
Remove lid and add chicken to the gravy.
Cook on medium heat, stirring occasionally.
While the gravy cooks, soak basmati rice for 20–30 minutes.
Parboil the rice until 75% cooked. Drain and set aside.
Check that the chicken and potatoes are cooked and there’s at least one glass of water left in the pan.
Add yellow food colour if using, and mix gently.
Sprinkle half of the garnish over the biryani mixture.
Spread half of the parboiled rice evenly over the mixture while it is still warm.
Add the remaining garnish on top.
Cover the pot with a cloth and tight lid.
Cook on medium-high heat for 5–6 minutes, then reduce to low heat and cook for another 10–12 minutes.
Remove from heat and let the biryani rest for 10 minutes before gently mixing and serving.