In a large Dutch oven or heavy pot, over medium heat, heat 2 tablespoons oil.
Add half the chicken, season with salt and pepper, and cook, turning halfway, until browned, 4 to 6 minutes.
Transfer chicken to a plate.
Repeat with remaining chicken.
Add butter, shallots and remaining oil and cook, stirring, until butter is melted and shallots are softened, about 2 minutes.
Add the ginger, garlic, mustard seeds, cumin seeds and cardamom, and stir until very fragrant, approximately 2 minutes.
Add rice and raisins, season well with salt and pepper and stir to coat, 30 seconds.
Add broth, scraping bottom of pot to remove any browned bits.
Nestle chicken with any accumulated juices into the mixture and bring to a boil over high heat.
Reduce heat to low, cover and cook until rice is tender and liquid is absorbed, about 15 minutes.
Sprinkle with carrots, then cover and turn off heat.
Let carrots steam for 5 minutes.
Add cilantro and fluff rice with a fork.
Divide among bowls and serve with hot sauce and yogurt, if desired.