1. Preheat oven to 350° F. Toast hazelnuts on a rimmed baking sheet, tossing occasionally, until golden brown, 10 – 12 minutes. Let cool, then coarsely chop.
2. While the nuts are cooling, increase the oven temperature to 400° F. Toss cauliflower and 2 tablespoons. oil on another baking sheet, and season with salt and pepper. Roast, tossing once, until florets are browned all over and tender, 30–35 minutes.
3. Meanwhile, cut bacon crosswise into 1/2" pieces. Heat a soup pot large on medium and cook bacon, stirring occasionally, until browned and crisp, 10 – 12 minutes. Leave the drippings in the pot and transfer the bacon to paper towels.
4. Cook fennel, onion, and garlic in drippings in pot, stirring occasionally, until onion and fennel are very soft, 8 – 10 minutes. Add wine and cook until mostly evaporated, about 5 minutes. Add roasted cauliflower, broth, cream, and bay leaves, season with salt and pepper. Bring to a boil, reduce heat, and simmer until cauliflower is very tender, 20 – 25 minutes. Pluck out bay leaves, discard. Let mixture cool slightly.
5. Working in batches, purée cauliflower mixture until very smooth. Strain back into pot; season with salt and pepper.
6. Ladle soup into bowls. Just before serving top with bacon and nuts.
Soup can be made 3 days ahead. Let cool, cover, and chill soup and bacon separately.