In a Dutch oven or large pot with a lid, melt the butter. Add onion, celery and carrot and sauté for about 5 minutes.
Add the stock, Guinness and potatoes and bring to a boil. Reduce the heat, cover and simmer for about 10 minutes or until potatoes are tender. Add the milk, thyme, bay leaf, dill, cayenne, salt and pepper to stock pot and bring to a simmer. Cook for about 5 minutes, stirring frequently. Add the fish and simmer stirring frequently taking care not to break up the fish for about 5 minutes or until the fish is cooked. Stir in the cream and heat for for about a minute or two until warmed. Garnish with parsley and paprika.