Start by heating a large saucepan over medium heat. Add the butter and let it melt, coating the bottom of the pan. This step is crucial as it sets the foundation for your flavors.
Once the butter is melted, toss in the diced onion, garlic, and grated ginger. Stir them together and let them sauté for about 5 minutes. You want the onion to become translucent and fragrant, indicating that they’ve cooked down properly.
Next, add the cauliflower florets to the pan. Cover it and let it cook for an additional 3 to 5 minutes, stirring occasionally. The cauliflower should start to soften but still have a bit of crunch.
Now it’s time to spice things up! Sprinkle in the garam masala, cumin, turmeric, coriander, cayenne, cardamom, paprika, and season with salt and black pepper. Stir well to coat the vegetables and allow the spices to toast for about 2 minutes.
Once the spices are fragrant, add in the cubed chicken breasts. Sear them for about 2 minutes on each side. This gives your chicken a nice golden-brown color and locks in flavor.
Now, pour in the uncooked rice and stir for about a minute. This helps the rice absorb the flavors of the other ingredients.
Next, add the canned diced tomatoes, tomato paste, and chicken broth to the pot. Stir everything together, ensuring the rice is submerged in the liquid.
Cover the saucepan and reduce the heat to low. Let it simmer for about 20 to 30 minutes, stirring every 10 minutes. You’ll know it’s done when the rice has absorbed the liquid and is tender.
After the rice has cooked, fold in the fresh spinach and coconut milk. Stir until the spinach has wilted and everything is well combined, about 1 minute.
Taste the dish and adjust the seasoning as desired. Serve warm, garnished with fresh parsley and a sprinkle of red pepper flakes if you like it spicy!