Heat butter in a large pot over medium heat until melted.
Add diced onion and minced garlic; cook until onions are soft and translucent, about 3–5 minutes.
Sprinkle flour over the onion and garlic mixture. Stir constantly for about 2 minutes to form a roux.
Gradually pour in the stock or broth while stirring to avoid lumps forming.
Add diced potatoes and the bay leaf. Bring the liquid to a gentle simmer and cook until potatoes are tender, about 10–15 minutes.
Add the fish chunks and corn if using. Cook for an additional 5–7 minutes, until the fish is cooked through and flakes easily.
Stir in the heavy cream and warm through, but do not boil.
Remove the bay leaf. Season with salt and black pepper to taste.
Ladle into bowls and garnish with fresh parsley before serving.