Rinse the basmati rice under cold water until the water runs clear. Soak the rice in water for about 30 minutes. Drain and set aside.
In a large pot or Dutch oven, heat the vegetable oil or ghee over medium-high heat.
Add the chicken pieces and cook until browned on all sides. Remove the chicken and set aside.
In the same pot, add the chopped onions and sauté until golden brown, about 5-7 minutes.
Add the minced garlic and cook for another minute.
Stir in the ground cumin, ground coriander, ground turmeric, ground black pepper, ground cinnamon, ground cardamom, ground allspice, and salt. Cook for another 2 minutes.
Add the chopped tomatoes and tomato paste. Cook until the tomatoes break down and the mixture thickens, about 5 minutes.
Return the browned chicken to the pot.
Add the cinnamon stick, cardamom pods, and cloves.
Pour in the chicken broth or water. Bring to a boil, then reduce the heat to low and let it simmer for about 30 minutes, or until the chicken is cooked through.
Add the drained rice to the pot, spreading it evenly over the chicken and sauce. Do not stir.
Sprinkle the raisins over the rice.
Cover the pot and cook on low heat for about 20-25 minutes, or until the rice is tender and has absorbed the liquid.
Remove the cinnamon stick, cardamom pods, and cloves.
Gently fluff the rice with a fork.
Garnish with toasted slivered almonds, pine nuts, and chopped fresh cilantro or parsley.
Enjoy your meal!