Set a heavy bottomed wide pan/skillet on medium high heat. Add ghee/oil and heat till shiny. Now add 1 teaspoon cumin seeds, 2 cardamoms, 2 cloves, bay leaves and cinnamon stick. Add ginger, garlic and cook till the raw smell goes away, about a minute.
Add the sliced onions and slit green chili (if using). Add a pinch of salt and let the onions sweat down for a minute or two.
In the meanwhile, set a big pot of water to boil on high heat, about 6-7 cups. Drizzle some oil into the water along with salt, 1 teaspoon cumin seeds, 1 cardamom and clove. *See Notes
Soak saffron in ¼ cup of warm water in a small bowl.
Add all the dry spice powders to the onions, mix and cook for a minute. Now add half a cup of yogurt and cook for 2-3 minutes.
After cooking down the yogurt, add raisins and nuts (if using) along with half the cilantro (¼ cup) and mint (¼ cup). Mix everything and add cooked (or canned) chickpeas along with salt. Cover and let cook for 5-10 minutes. Turn the heat off and set aside. Your chana masala is ready.
Drain the soaked rice and add to the boiling water. We want to cook the rice to 60-70% doneness, almost al-dente. Since the rice have already been soaked, it should not take more than 3-4 minutes to cook the rice to that level. You do not want to overcook the rice. After 3-4 minutes, check a grain of rice. It should still have a bite to it and not be mushy. Drain the cooked rice and set aside. (Fish out the whole spices if you can).
Take a deep pot (think dutch oven). Add remaining one tablespoon ghee/oil and swirl around. Take half of the prepared chana masala and add to the pan. Add remaining half cup of yogurt, more salt if needed and cook for a minute. Turn the heat to lowest setting of your stove, a very mild simmer. Spread the mixture to cover the bottom of the pan and sprinkle half the fried onions.
Layer the chana masala mixture with half of the cooked rice and remaining chana masala mixture. Sprinkle remaining half of the fried onions and cover with remaining rice.
Now sprinkle remaining cilantro and mint followed by a drizzle of saffron water. Cover the pot with a tight fitting lid and let the biryani cook for 15 minutes. (See Notes)
After 15 minutes, use a long stemmed soon and gently fluff through biryani layers to mix them. Serve hot with raita (recipe below).