Preheat oven to 350°, slice the bread to ½ inch thick, brush with a little oil and bake them just until they begin to brown. You want them dry & a little crusty. Can be done ahead of time.
Saute all of the onions & leeks in the butter & oil, in a large soup pot over high heat for 5 to 10 minutes, stirring occasionally; 5-10 minutes. Don’t let them burn or stick. Keep a small glass of water on hand to add if they start sticking or burning.
Onions will begin to soften and the volume will reduce, lower the heat to medium-low, sauting for an additional 45 minutes, until they are slightly colored. You can always lower the heat if you need to and drop a tablespoon of water to prevent them from burning.
Scatter the flour over the onions, stirring the entire time to prevent clumps. Cook on low for 4-5 minutes more.
Add the chicken stock and bring it to a boil over high heat. Reduce the heat and simmer for 30 minutes. Last, add the Worcestershire sauce, salt & pepper.
Turn on the broiler, ladle the soup into oven proof bowls, place bread slices on top, then add your Gruyere cheese. Place bowls under the broiler until the cheese bubbles but doesn’t burn.