Melt butter with olive oil in a large pot over medium heat. Add onion and cook 5 minutes until soft. Add garlic and cook 1 minute. Stir in garlic powder, onion powder, and smoked paprika for 30 seconds.
Sprinkle flour over the onion mixture and stir for 1 minute. Gradually whisk in vegetable broth until smooth. Add milk or cream and stir to combine. Bring to a gentle simmer and cook 3–4 minutes until slightly thickened.
Add drained white beans to the pot. Stir through and simmer for 5 minutes so beans absorb the flavor of the broth.
Add broccoli florets and stir in Dijon mustard. Cover and cook 5–6 minutes until broccoli is tender and beans are fully soft.
Reduce heat to low. Add grated cheddar in 2–3 batches, stirring between each until fully melted and smooth. Stir in parmesan if using. Taste and season with salt and pepper.
Ladle into bowls. Top with extra shredded cheddar and cracked black pepper. Serve immediately with crusty bread on the side.