Place the beef, beef broth, and bay leaves into a large Dutch oven. Bring to a boil, then reduce heat to low, cover partially, and simmer for 45-60 minutes until the meat is tender.
Remove the beef from the pot and set aside to cool. Discard the bay leaves. Once cool, shred or chop the beef into bite-sized pieces, discarding any bones or excess fat.
While the beef simmers, prepare all the vegetables. Peel and grate half of the beets and julienne the remaining half. Grate the carrots. Dice the onion, mince the garlic, and shred the cabbage.
Heat oil in a large skillet over medium heat. Cook the onion for 5 minutes until translucent. Add the grated carrots and cook for 3-4 minutes. Add the garlic and cook for 1 minute until fragrant.
Add the diced tomatoes (or tomato paste) to the skillet and cook for 2-3 minutes, stirring to combine. Remove from heat and set aside.
Bring the beef broth back to a gentle boil. Add the potatoes and shredded cabbage, cover, and simmer over medium-low heat for 15-20 minutes until the potatoes are just becoming tender.
Add the prepared beets, the sauteed aromatic mixture, and the shredded beef to the pot. Stir in the sugar, salt, and pepper. Simmer uncovered for 15-20 minutes until all vegetables are tender.
Taste the soup and adjust salt as needed. Stir in the vinegar. This brightens the flavor and fixes the vibrant red color. Simmer for 2-3 more minutes, then remove from heat.
Ladle the borscht into deep bowls. Top each serving with a generous dollop of sour cream and a sprinkle of fresh dill. Serve immediately with slices of rye bread or sourdough on the side.