Cut the chicken into tiny bite sized pieces and keep aside.
In a deep pot, add butter, garlic and onions. Stir fry for 3-4 minutes, add chicken, barley and 4 cups water. Let this simmer for 35-40 minutes till the barley is almost cooked.
Add mushrooms, carrots, salt, pepper and the remaining water or stock. Cook this for 20 minutes till the vegetables are cooked through. Mix together milk and flour till there are no lumps and add this mixture to the soup. Bring it to quick boil while stirring continuously and add spinach. Add a little more stock or water if you'd like to thin out the soup. Simmer for five minutes and turn off the heat.
Let the soup sit for 15 minutes before serving. Top with fried bacon bits and a dollop of cream.
If you are vegetarian, just skip the bacon and chicken altogether. You may have to adjust the timings and water
Adjust the amount of stock based on the consistency you like
Leftovers keep for a few days in the fridge and taste just as good the next day