Heat olive oil in a large pot over medium heat.
Add chopped onion and sauté for about 5 minutes until translucent.
Stir in minced garlic and cook for an additional minute.
Toss in the beef cubes and season with salt and pepper; brown on all sides.
Add tomato paste, stirring to fully coat the beef and vegetables.
Pour in the Guinness stout, scraping the bottom to deglaze the pot.
Add beef broth, carrots, potatoes, thyme, and bay leaves; stir to combine.
Bring the mixture to a boil, then reduce heat to low and cover.
Simmer for at least 2 hours, checking occasionally and stirring.
Taste and adjust seasoning, removing bay leaves before serving.