In a large stock pot, add all ingredients for broth. Bring to a simmer. Let simmer for a minimum of 2 hours, but up to 4 hours. Skim off any fat from top of broth. Strain. Season with salt at the end. Set aside. Freeze if not used within 5 days.
In a large pot on medium heat, add butter. When melted, saute onion and salt until soft and caramelized, about 15 to 25 minutes. Do not brown.
Add beef broth, soy sauce, salt and pepper. Simmer for 30 minutes.
On a sheet tray, fill mug with soup (about 75 to 80 percent of the way up). Place 1 slice of bread on top of each mug. Next, layer with 1/4 cup Swiss cheese followed by 1 slice of provolone as a “hat” right over the top of the mug.
Heat under broiler until cheese melts, is bubbling and browned.