Heat the oil in a large deep sauce pan.
Thinly slice the onions (using a food processor is the easiest way to avoid all those tears - but it will totally be worth it - I promise!).
Add all the onions to the hot oil. Add 1 tsp of salt, and the ginger slices. Cook on medium high, stirring occasionally till they start to turn a caramel brown colour (about 30-40 minutes).
While the onions cook, prepare the rest of the ingredients: Sprinkle the chicken with 1 tsp salt. Soak the dried apricot in hot water.
Chop the potatoes into quarters, and boil them in a separate saucepan with 1 tsp of salt, till fork tender (optional - add a pinch of the zarda food colour to the potatoes while they are boiling to give the potatoes some extra colour too). Once they are cooked. Drain and set aside.
Mix the biryani spice mix together, set aside. Soak the saffron in milk or water and add the zarda colour, if using and set aside. Dice the green chillies, set aside.
When the onions are a deep caramel brown, add the chicken and biryani spice mix, yogurt, rehydrated apricot (if using) and green chillies.
Cook stirring often till the chicken is cooked through, about 15 minutes. Taste for salt and spice level, and adjust to taste. Add the cooked potatoes into the curry at the very end and give it a stir to combine.
Once the chicken is cooked, turn off the heat and start to assemble the biryani. (Or you can make the chicken masala ahead of time and refrigerate until ready to assemble. The masala will keep for a few days in the fridge).