Mix meatball ingredients together and roll small meatballs the size of a marble. (If forming the meatball is difficult, cover and refrigerate first.)
In a medium pan, cook orzo al dente, according to package directions, drain and set aside.
Prep the vegetables.
In a large pot, saute onion, thyme and sage in olive oil. When the onion starts to turn a golden color; add garlic, carrot, celery and cook for about 5 minutes stirring occasionally. Set the vegetable mixture aside on a plate.
In the same pot add all the meatballs and cook for 2-3 minutes before stirring (this will keep them from breaking). Gently toss with a rubber spatula to brown on all sides.
Add reserved vegetables, chicken stock, Bay leaf. Simmer gently, (do not boil) until vegetables are tender and meatballs are cooked through.
Add cooked orzo and spinach, stir together. (Adding spinach right before serving will help it maintain its rich green color).
Garnish soup bowls with parmesan cheese.