Season short ribs with salt and pepper. In a large Dutch oven, heat olive oil over medium-high heat and sear the short ribs on all sides until browned. Remove and set aside.
- In the same pot, add butter and sliced onions. Cook over medium-low heat, stirring occasionally, until onions are deeply caramelized—about 35–45 minutes.
- Add garlic and cook for 1 minute until fragrant.
- Deglaze the pot with white wine, scraping up the browned bits. Let it simmer for 3–4 minutes.
- Return the short ribs to the pot. Add beef broth, thyme, bay leaves, and Worcestershire sauce. Bring to a simmer.
- Cover and cook on low heat for 2.5 to 3 hours, or until the meat is tender and falls off the bone.
- Remove short ribs, shred the meat, and discard the bones. Return the meat to the soup. Adjust seasoning with salt and pepper.
- Toast bread slices, top with grated Gruyère, and broil for 1–2 minutes until melted and bubbly.
- Ladle soup into bowls and top each with a slice of cheesy toast. Serve hot.