Measure out the curry powder, cumin, garlic powder, chili powder, onion powder, cayenne pepper, paprika, ground ginger, coriander, turmeric, pepper, cardamom, and cinnamon. Set these spices aside.
Heat up the olive oil over a high heat.
Slice one medium onion into small strips as the oil heats up.
Add the onions to pan, season with salt and pepper as needed, and allow them to cook down until soft and slightly browned.
Add the heavy cream and half of the xanthan gum to the onions and mix well.
Add the butter to the onion mixture and stir in well.
Dump in the spices from earlier and mix until well combined. They should soak up most of the moisture. Let cook for 1–2 minutes to allow them to release their fragrances.
Add in the chicken broth and coconut milk.
Bring to a boil, then cover with a lid and turn the heat to low. Let simmer for 30–45 minutes.
Chop the cauliflower into small florets.
Add the cauliflower to the curry and stir in well. Let cook uncovered for 15–20 minutes.
Add the shelled, deveined shrimp to the curry and stir them in. Let cook uncovered for an additional 10–20 minutes.
Mix the coconut flour and remaining xanthan gum into the curry and let simmer again for 5–10 minutes.
Add in the spinach and let wilt.
Taste the curry and season as needed. Once the spinach is wilted, mix it into the curry well and cook for 4–5 minutes longer.
Serve hot!