In a large pot or Dutch oven, heat the vegetable oil or ghee over medium heat.
Add the finely chopped onion and sauté until golden brown, about 10 minutes.
Add the minced garlic and grated ginger, and cook for another minute until fragrant.
Add the meat pieces to the pot and cook until browned on all sides.
Stir in the chopped tomatoes and tomato paste.
Add the ground cumin, ground coriander, ground turmeric, ground cinnamon, ground cardamom, ground cloves, ground black pepper, and salt.
Mix well to combine and cook for about 5 minutes until the tomatoes start to break down.
Pour in the water or chicken broth.
Bring to a boil, then reduce the heat to low and let it simmer for about 20-30 minutes, or until the meat is tender.
Drain the soaked rice and add it to the pot with the meat and broth.
Stir in the raisins (if using).
Bring the mixture to a boil, then reduce the heat to low.
Cover the pot and cook for about 15-20 minutes, or until the rice is cooked and the liquid is absorbed.
Fluff the rice with a fork and transfer to a serving dish.
Garnish with chopped fresh cilantro and fried onions (if using).
Enjoy your meal!