Rinse, peel, and dice carrots and onions. Peel and mince garlic. Rinse and chop spinach.In a colander, rinse barley with cold water.
In a large pot, add oil. Heat over medium-high heat. Add carrots and onions. Cook until slightly soft, about 5 minutes.
Add garlic, paprika, and cayenne pepper to pot. Stir and cook for 30 seconds.
Add barley, water, and broth to pot. Bring to a boil. Reduce heat to low. Partially cover with a lid and simmer for 15 minutes.
In a colander, rinse lentils with cold water. Add lentils to pot, along with tomatoes. Cover and simmer for 30 minutes.
Add spinach to soup and stir. Cover and simmer for 5 more minutes.
Add salt and pepper and stir. If using Parmesan cheese, add now.