Dry roast the spices in a small frying pan in a pan until fragrant and they change color slightly. Grind the spices together with ginger and garlic in a food processor or blender with enough water to make a thick paste. Set aside.
Rinse the basmati rice under cold running water and then soak in fresh water for 20 minutes. Put the saffron strands and rosewater in a separate small bowl and set aside to soak as well. Drain the rice.
Meanwhile, heat half the butter in a large heavy-based pan and sauté the shallots until fragrant, then add two thirds of the diced onions and continue to sauté until they become golden brown.
Stir the spice paste into the shallot and onion mixture and once the spices have fully absorbed the butter, add the chicken pieces and chopped tomatoes. Sauté for few minutes until the chicken pieces are evenly coated.
Pour the chicken stock over the coated chicken pieces, then add the saffron, and season to taste with salt. Cover and simmer gently for 30 minutes until the sauce is slightly reduced and thickened, stirring occasionally.
Transfer the chicken pieces onto a baking sheet and set aside the spicy chicken stock in a measuring jug to be used later. Pour a few tablespoons of the spicy chicken stock on top of the chicken to help keep them moist.
Preheat the oven to 350°F (180°C), Gas mark 4. Meanwhile, heat the remaining butter in a large heavybased pan and sauté the remaining diced onion. Once fragrant, stir in the drained basmati rice and cook briefly for few minutes. Measure the spicy chicken stock and top up the liquid with enough water to make 5 cups (2 pints and 2fl oz) (1.25 litres), then pour into the sautéed onion and add the lemon juice. Cover and simmer gently for about 20 minutes or until the rice has fluffed up and absorbed all the liquid.
Toss the chicken pieces again in the spicy chicken stock so that they are coated evenly and roast in the oven for about 20 minutes until the chicken is heated through and the skin is nice and crisp.
To prepare the garnishes, heat the butter in a nonstick frying pan and sauté shallots until really crispy and golden brown. Remove with a slotted spoon and drain on kitchen paper. Add the almonds to the frying pan with the pistachios and raisins and sauté for another few minutes.
To serve, arrange the flavoured rice on a large warmed platter and put the roasted chicken pieces on top. Scatter over the toasted almonds, pistachios and raisins.