Add olive oil to the pot on medium-high heat. Stir in the onions, celery, and carrots. Give them 3-4 minutes to soften while you stir occasionally. Add a pinch of salt. Add a little salt at each step to bring out the flavor of the vegetables. This is important since there is no meat in this soup.
Once the onions are slightly translucent, about 6-8 minutes, stir in the mushrooms. Allow the mushrooms to saute for 3 minutes or so. Then add the garlic in and saute for the final 2 minutes. Create some space in the center of the pot, and add your tomato paste. Spread it out so it's touching as much surface area as possible. Let it caramelize for 2 minutes then stir throughout.
Pour in the diced tomatoes and bring them to a simmer for 5 minutes. Add the thyme and a little pinch of salt. Pour in the broth and bring to a boil.
Lower the heat and bring the soup down to a simmer. Add the bay leaves. Cover the pot leaving a place for the steam to escape. Simmer for 25 minutes. After 25 minutes, add your barley, lentils, and beans. Bring the soup back to a simmer for another 25 minutes.
Remove the soup from the heat and take the bay leaves out. Serve!
Notes
Always caramelize tomato paste. It needs to be cooked hot to get the most flavor out of it. It's a concentrate so the direct contact with the pot will bring out some of the sugars.
Bring the diced tomatoes to a simmer before adding broth. This helps get them started on the cooking process and will help break them down slightly before adding the broth.