Heat olive oil in a large pot over medium heat. Add the cubed beef and season with salt and pepper. Brown the meat on all sides, about 5-7 minutes.
Add the diced onion and minced garlic to the pot. Cook until the onion is translucent, about 3-4 minutes, stirring occasionally.
Stir in the tomato paste and cook for an additional 1-2 minutes to deepen the flavor.
Add the beef broth, water, diced tomatoes (with juice), bay leaf, thyme, and rosemary to the pot. Bring to a boil, then reduce the heat to low.
Cover and simmer for 1 hour, stirring occasionally, until the beef becomes tender.
After an hour, add the diced potatoes, sliced carrots, and celery to the pot. Stir well and continue to simmer for another 40-60 minutes, or until the vegetables are fork-tender and the beef is very tender.
If using, add frozen peas in the last 5 minutes of cooking. Adjust seasoning with salt and pepper as needed.
Remove the bay leaf before serving. Ladle the soup into bowls and garnish with fresh parsley.