Heat olive oil in a large pot over medium heat. Add the diced onion and minced garlic, cooking for about 2 minutes until fragrant.
Stir in the diced potatoes, sliced carrots, leeks, and mushrooms. Cook for 3-4 minutes, stirring occasionally to coat the vegetables in oil and allow them to soften slightly.
Pour in the fish or vegetable stock, ensuring all the vegetables are covered. Add the sprig of thyme and bay leaf. Season generously with salt and pepper. Bring the mixture to a boil, then reduce to a gentle simmer.
Gently add the fish fillets to the simmering broth, ensuring they are fully immersed. Cover the pot and poach the fish for 10-12 minutes, or until it becomes tender and flakes easily with a fork.
Remove the thyme sprig and bay leaf from the pot. Squeeze in the juice of one lime to brighten the flavors, stirring gently to combine.
Serve the soup in bowls, ensuring each portion includes a generous amount of fish, vegetables, and broth. Garnish with freshly chopped parsley and serve warm.