Remove the head and the bones as much as it is possible then slice up the fish fillets.
Rinse the head and bones then add them to a pot of water.
Bring it to boil then simmer until the meat separates from the bones for about 30 minutes.
With an immersion blender, or puree the fish and the bones as much as possible.
Run the fish stock through a sieve to remove remaining fish bones. Scrape through as much fish as possible. This is a rather ungrateful part, even if we have a special equipment to make it easier.
Melt butter in a frying pan then saute the diced onion, carrot, celery and salt on high heat until the onion gets a glassy translucent look for about 5 minutes.
Reduce the heat then slowly fry the vegetables until they caramelize for about 15 minutes.
Increase the heat then add the optional vegetables and the fish chunks.
Stir fry for about 3 - 5 minutes. (If frozen vegetables are used more time is needed but not for the fish.)
Add the fish stock and cream then bring it to boil. Take it off heat, let it cool a couple of minutes then serve.