In a large pot over medium heat, warm the oil. Add the onion, carrot, and ½ teaspoon salt. Cook for 5-7 minutes or until softened, stirring occasionally.
Stir in the garlic and thyme and cook, stirring often, for 1 minute.
Stir in the water, potatoes, cauliflower, soy sauce, and remaining 1 teaspoon salt. Increase the heat to high to bring to a boil. Give it a stir, then reduce the heat to medium to keep it at a rapid simmer for 15-20 minutes, stirring halfway through, or until potatoes are cooked through.
(If you want a thicker soup, you can remove some of the broth/potatoes, blend it up, and stir it back into the pot. Or you can use an immersion blender. I like it more brothy!)
Place the fish filets on top of the soup and nestle them into the liquid so it’s submerged. Bring back to a boil, then cover and reduce the heat to low or medium-low to maintain a gentle simmer for 3-5 minutes, or until the fish is cooked through and flakes easily. Once the fish is cooked, you can flake it up directly in the pot. Stir in the heavy cream.
Serve topped with black pepper, fresh herbs (if using) oyster crackers (if using), and a generous squeeze of lemon.