Heat the olive oil in a large pot or dutch oven over medium heat. Add onions and garlic and sauté until translucent, about 5-7 minutes.
Add the cauliflower, nutmeg, cayenne (if using), salt and pepper. Sauté for another 1-2 minutes.
Add the broth to the pot and bring mixture to a boil. Once boiling, reduce heat to a simmer, cover and cook for at least 15-20 minutes, or until the cauliflower is very tender (soft enough to mash with a fork).
Use an immersion blender to puree the mixture until smooth and creamy.
Return the soup to the pot over medium heat and add the broccoli and carrots. Bring to simmer and cook 20-25 minutes, or until the broccoli is tender (if you use frozen broccoli, you'll only need to cook until the broccoli is thawed and heated through).
Reduce the heat to low and stir in the cheese a little at a time. The soup will be pretty thick. If you want a thinner soup, add additional broth or water to reach a desired consistency. Taste and season with more salt and pepper.
Serve soup sprinkled with additional shredded cheese and green onions.