Pre-heat oven to 180oC. Place the whole and unpeeled shallots in a single layer on an oven tray. Roast in the oven for 1 hour until the shallots are very soft inside.
Heat the butter and oil in a large , heavy based pot. Add the onions and garlic and cook over a medium heat for 5 minutes. Once the onions are soft and translucent, sprinkle in the sugar. Reduce the heat and continue cooking for at least 15 minutes, stirring frequently, until the onions caramelise.
Stir in the white wine, saffron infusion, stock and bay leaves. Bring to the boil, reduce the heat and simmer, covered, for 15 minutes.
When the shallots are cooked, leave to cool for 5 minutes, then squeeze them out of the skins. Add to the soup and continue to simmer for at least 15 minutes.
Meanwhile, preheat a grill and toast the bread slices lightly on each side. Just before serving, sprinkle each with the grated cheese and grill for 3 minutes or until melted.
Remove the bay leaves and season the soup to taste with salt and pepper. Ladle into serving bowls and serve with cheese toast and fresh herbs.