Heat olive oil in a large pot or Dutch oven over medium heat. Add the sliced fennel and chopped shallots and cook until softened, about 5-7 minutes. Add the minced garlic and cook for another minute until fragrant.
Add the diced potato, white beans, vegetable broth, salt, and pepper to the pot. Bring to a boil, then reduce the heat to a simmer. Cook for 15-20 minutes, or until the potatoes are tender when pierced with a fork.
Use an immersion blender to pulse about 6-8 times to puree about half of the soup. (Alternatively, you can transfer half of the soup to a regular blender, blend until smooth, and stir it into the rest of the soup.)
Stir in the chopped broccoli florets and cook for 3-5 minutes until the broccoli has softened. Add the spinach, stirring until it has wilted completely. Taste and season with more salt and pepper if desired, and stir in the heavy cream if using.
Ladle the soup into bowls. Top each serving with a generous sprinkle of hemp seeds and a few chopped fennel fronds for garnish.
