Heat the olive oil in a large pot or Dutch oven over medium-high heat.
Season the beef stew meat with salt and pepper. Once the oil is hot, add the beef to the pot in a single layer. Sear until browned on all sides, about 5-7 minutes. Remove the beef and set aside.
In the same pot, add the diced onion, carrots, and celery. Sauté for about 5 minutes, or until the vegetables start to soften.
Stir in the minced garlic and cook for an additional minute until fragrant.
Return the browned beef to the pot. Add the barley, beef broth, diced tomatoes, thyme, rosemary, and bay leaf. Stir to combine all the ingredients.
Bring the soup to a boil. Once boiling, reduce the heat to low and cover the pot. Let it simmer for about 1 hour, stirring occasionally.
After an hour, check the barley for tenderness. If needed, continue to simmer for an additional 15-30 minutes.
If using, stir in the fresh spinach just before serving and allow it to wilt for a couple of minutes.
Remove the bay leaf before ladling the soup into bowls. Season with additional salt and pepper to taste.