Remove and discard the skin from the chicken legs and breasts. Cut each leg into drumstick and thigh, and quarter the breasts.
To prepare the marinade paste, peel and coarsely chop the garlic, ginger, and 3 onions. Place in a blender with the cloves, peppercorns, cardamom seeds, cinnamon, coriander, cumin, poppy seeds, mace, 1 teaspoon salt, and the lemon juice. Blend to a smooth paste. Turn into a large bowl, add the yogurt, and mix well.
Dry Roasting: Spices are often dry-roasted before use. It is best to do this over medium heat in a preheated small, heavy, cast-iron frying pan. No oil is used; the spices are just stirred around in the pan with a wooden spatula until they brown lightly. Roasted spices develop a heightened, nutty aroma. They can be stored for several months in an airtight jar.
Peel the 3 remaining onions, halve lengthwise, and slice finely. Heat the oil in a large heavy-based frying pan over medium heat. When hot, add the bay leaves and cardamom pods. Fry for 10 to 15 seconds. Add the sliced onions and fry, stirring, for about 10 minutes or until brown and crisp, but not burned. Remove with a slotted spoon, squeezing out as much oil as possible. Reserve the oil, cardamoms, and bay leaves. Add 2/3 of the fried onions to the marinade paste and mix well. Drain the rest on paper towels and set aside for garnishing.
Pierce the chicken pieces with a fork and add to the bowl of marinade paste; mix well. Cover the bowl and refrigerate for at least 2 hours, preferably overnight, turning the chicken occasionally.
Transfer the chicken and marinade to a large heavy-based cooking pot or pan. Bring slowly to a boil, cover, lower the heat and simmer for 15 minutes. Lift out the chicken pieces with a slotted spoon and place them in a 6-quart casserole dish; cover and set aside.
Preheat the oven to 300 degrees. Crumble the saffron into the warm milk and set aside to soak.
Boil the marinade paste, stirring, over a medium heat, until reduced to 9 to 10 tablespoons. Spoon the paste over the chicken. Cover again.
Pour about 3 quarts water into a large cooking pot or flameproof casserole. Add 3 teaspoons of salt and bring to a boil. Add the rice, bring back to a boil, then simmer for precisely 5 minutes. Drain the rice in a colander, then place it on top of the chicken in the casserole.
Pour the saffron-infused milk over the rice, streaking it with orange lines. Sprinkle the reserved cardamom, bay leaves, and oil over the rice (retaining 1 tablespoon oil, for frying the raisins, if using). Cover the casserole dish with foil, cut 2 inches wider than the rim of the dish. Now put the lid on and use the protruding foil edges to seal the dish as best you can by crinkling it and pushing it against the sides. Bake in the oven for 1 hour.
To prepare the garnishes, if including raisins fry them briefly in the reserved oil. Lightly toast the almonds if you wish. Quarter the hard-cooked eggs lengthwise, or cut into slice.
Spoon the rice and chicken onto a large warm platter. Sprinkle with the fried onions, raisins, almonds and hard-cooked eggs. Serve hot.