Heat butter and olive oil in a large soup pot.
Add onions, garlic, carrot slices, and season with salt and pepper; cook over medium-low heat for 3 minutes, or until onions are translucent.
Add bay leaf, diced potatoes, broccoli, and stock; cook over high heat and bring to a boil.
Reduce heat to low, cover pot, and simmer for 15 minutes.
Uncover pot and remove bay leaf.
Remove from heat; add heavy cream and puree soup with either an immersion blender, or in a food processor. If using a food processor, puree the soup in batches; DO NOT pour the whole soup into the food processor all at once.
Taste for salt and pepper and adjust.
Ladle the soup into bowls.
Garnish with shredded parmesan cheese.