In a pot, bring 2 liters of water to a boil with fish heads, garlic, onion, celery, parsley, salt, and pepper. Cook over medium-low heat for 30 minutes.
Strain the broth and discard the fish heads, garlic, onion, celery, and parsley.
Blend the tomato using some hot water until smooth, then strain and keep aside.
In a pot, cook the tomato in hot oil until browned, for around 4-5 minutes.
Next, add the reserved broth, bay leaf, and vegetables.
Place the fish pieces in the pot once the broth starts to boil.
Allow the soup to simmer for an additional 15 minutes, then taste and adjust the seasoning as needed.
Add a sprinkle of fresh chopped dill over the dish.
For the final touch, add cream, and serve it in a deep dish.
The soup is now ready to be served immediately. Enjoy this delicious fish head soup recipe!