Cut the cauliflower into bite-sized florets. Dice the onion, mince the garlic, and measure the broth, water, cream, and cheeses.
Heat a large soup pot over medium-high heat. Add the ground beef and cook for 7–9 minutes, breaking it into small crumbles, until browned and cooked to 160°F (71°C). Drain excess grease if needed.
Reduce the heat to medium. Add up to 2 teaspoons olive oil if the pot is dry, followed by the onion. Cook for 4–5 minutes until softened, then add the garlic and cook for 30–60 seconds.
Stir in the smoked paprika, thyme, oregano, black pepper, and salt. Add the beef broth, water, and optional bay leaf, scraping up the browned bits from the bottom.
Add the cauliflower. Bring the soup to a gentle boil, reduce the heat, and simmer for 12–15 minutes until the florets are fork-tender but still hold their shape.
In a small bowl, whisk the softened cream cheese with a ladleful of hot broth until smooth. Stir the mixture back into the pot, then add the heavy cream over low heat.
Add the shredded cheddar gradually, stirring until melted. Avoid boiling the soup after adding dairy.
If a thicker broth is desired, blend a small portion of the cooked cauliflower and broth and stir it back into the pot. Add a little extra broth or water if the soup is too thick.
Remove the bay leaf, taste, and adjust the seasoning. Serve hot with optional parsley or green onions.