In a small bowl mix together the mayonnaise, 4 cloves of garlic, 1 teaspoon of saffron powder, bread crumbs and chilli flakes. Set aside.
Preheat the grill. Arrange the baguette slices on a baking tray. Place under the grill for a few minutes to toast. Set aside to cool.
Heat olive oil in a stock pot over medium heat. Add 4 cloves of garlic, onion and leek; saute for a few minutes until tender. Add a pinch of saffron and the bay leaf. Pour in the white and red wines then place the fish in the pan and pour in enough water to cover the fish just barely. Simmer for about 10 minutes, turning the fish carefully as needed, until the fish flakes easily with a fork.
Remove the fish from the broth with a slotted spoon and set aside. Pour in the beef stock and simmer uncovered for about 10 minutes to burn off some of the alcohol and reduce the broth. Remove the bay leaf and transfer the broth to a blender. Add the tomato, lemon juice and parsley to the blender. Puree in batches if necessary and return to the pot.
Whisk the flour and cream into the pot and set over medium heat. Whisk in about half of the mayonnaise mixture or to taste. Return fish to the soup and break into small pieces. Season to taste with salt and pepper and heat through.
Spread the remaining mayonnaise mixture onto the toasted bread slices and top with grated Gruyere cheese. Ladle the soup into serving bowls and float 1 or 2 slices of toast on the top.