Heat the oil and seven tablespoons of butter in an at least eight-quart, heavy-bottom pot on high heat until melted.
Add your thinly sliced onions, and stir often for about 15 minutes until the onions are still light in color and begin to shrink. Be sure not to crowd your pan, otherwise your onions will steam and not caramelize.
Reduce the heat to medium-low and add the thinly sliced garlic. Cook another 20 minutes, stirring often, until the onions are a deep golden color and tender. If you notice some onions are browning more than others, stir more frequently. You want all your onions to be an even golden brown.
Add the thyme and apple cider or apple juice and cook until cider is fully reduced or evaporated.
Next, add the two tablespoons of flour and stir until it coats all the onions for about three minutes, until they have a dull appearance.
Add the wine. Increase the heat to medium and bring to a boil. Cook the onions for about five minutes until they are purple and almost all the wine has evaporated.
Take out the thyme bundle and throw it away. Add your beef broth, soy sauce, and one teaspoon of salt. Bring to a boil over high heat then reduce heat to a gentle simmer. Continue to simmer until the soup has thickened and the onions are no longer purple, about 45 minutes. Season with salt to taste.
Preheat the oven to 350 degrees. Spread out the croissant pieces on a baking sheet and bake for about nine minutes until golden. Remove from oven and crank up the broiler.
Arrange your soup crocks on a sturdy rimmed baking sheet. Grate ¼ cup of Gruyère cheese on the bottom of each soup crock. Ladle soup over cheese and add your croissant.
Top off with more grated cheese. Broil until cheese is bubbly, about three or four minutes.