Using a mandolin or knife, peel and thinly slice the onions. Add olive oil to a large saucepan or dutch oven and add onions. Stir frequently to prevent burning for about 30 min or until they are super soft and golden.
Add butter, garlic, thyme, bay leaves, salt and pepper to the onions and cook for another 10 minutes. Raise the heat and add white wine and bring to a boil. When it’s reduced by half, add stock and simmer for 45 min to an hour. Remove thyme and bay leaves and stir in the port.
Preheat oven to broil and grate cheese. Coat bread in olive oil and cook 2-3 min per side until nice and crispy. Cut into bite sized pieces. Ladle soup into each of the cocotte and top with croutons and lots of gruyere cheese. Broil for about 5 min or until all browned and bubbly.
When you have only a few spoonfuls of soup left, swirl a little French red wine into the bottom and enjoy some delicious last bites!