Heat the butter and oil in a saucepan, add the onions and toss in the butter, then fry very gently for 20 minutes, stirring occasionally until very soft and just beginning to turn golden around the edges.
Stir in the sugar and fry the onions for 20 minutes more, stirring more frequently towards the end of cooking until the onions are caramelized to a rich dark brown. Add the brandy and, when bubbling, flame with a long taper and quickly stand well back.
Add the wine, stock, bay leaf, salt and pepper as soon as the flames subside, then bring to the boil. Cover and simmer for 20 minutes. Taste and adjust the seasoning if needed.
Toast the bread on both sides then rub with the cut surface of the garlic. Sprinkle with the cheese and put back under the grill until the cheese is bubbling. Ladle the soup into bowls and top with the cheesy croûtes.