Start by peeling the four onions and chopping finely.
Put the onions into a frying pan, add the butter and turn up to a medium heat.
Turn the onions every minute or so to ensure they are evenly cooked. Aim to cook the onions until they are a light brown in colour.
Transfer the onions to a large pan and add all the other ingredients except the bread and cheese.
Cook the soup on a medium heat for about 30 minutes, the onions should be soft but not falling a part.
While the soup is cooking, put soup bowls in the oven to warm them. Cut the French bread into slices and put them under the grill until lightly toasted. When toasted, spread with the cheese.
Just before the soup is ready put the cheese topped bread under the grill and cook until the cheese starts to bubble.