01 - In a large bowl, combine all marinade ingredients. Add chicken, mix well, cover, and refrigerate for at least 1 hour up to overnight.
02 - In a large pot, bring water, salt, bay leaves, cardamom pods, cloves, and cinnamon to a boil. Add soaked rice, cook until 70% done about 7-8 minutes. Drain and set aside, removing whole spices if desired.
03 - Heat butter and oil in a large skillet over medium heat. Add onions and sauté until golden. Stir in ginger and garlic paste, cook for 1 minute. Add marinated chicken, cook until lightly browned 6-8 minutes.
04 - Add garam masala, cumin, paprika, and chili powder. Stir to coat chicken. Add crushed tomatoes, simmer 10 minutes. Pour in cream and sugar, season with salt, and simmer until sauce thickens and chicken is cooked through 10-15 minutes. Stir in chopped cilantro.
05 - In a large ovenproof Dutch oven or heavy pot, spread half the butter chicken sauce on the bottom. Top with half the rice. Drizzle half the saffron milk, butter or ghee, fried onions, cilantro, and mint. Repeat layers with remaining sauce, rice, saffron milk, butter or ghee, onions, cilantro, and mint.
06 - Cover tightly with foil or a lid. Bake at 350°F for 25 minutes, or cook on very low heat on the stovetop for 25 minutes.
07 - Let rest 10 minutes before gently fluffing and serving.