Melt butter in an ovenproof pan and gently fry onions and chopped garlic for 35 minutes until dark brown.
Stir in the white wine to deglaze the pan and bring to a boil.
Add the Madeira and 1l of beef stock, then simmer for 12 minutes.
Toast the bread on both sides, rub with halved garlic cloves, and top with 100g of grated cheese.
Grill the croutons until the cheese has melted.
Season the soup with salt, pepper, and extra Madeira to taste.
Place the croutons on top of the soup and scatter with chopped parsley.
Ladle the soup and croutons into bowls and serve immediately.