In a large bowl, mix all of the meatball ingredients together with your hands and roll into small meatballs, the size of a marble.
In a large pot, cook the orzo al dente, according to package directions, drain and set aside.
Meanwhile, prep the vegetables.
In a large pot, sauté the onions, thyme and sage in olive oil. When the onions starts to turn a golden color; add garlic, carrot and celery and cook for about 5 minutes, stirring occasionally. Pour vegetable mixture into a large bowl or onto plate and set aside.
In the same pot, add the meatballs, gently toss with a rubber spatula to brown on all sides. Do this in 3 batches. You may need to add a little more olive oil to the pan in between batches.
Add meatballs, reserved vegetables, chicken stock, and bay leaf to the pot. Simmer gently, (do not boil) until vegetables are tender and meatballs are cooked through.
Add cooked orzo and spinach, gently stir to combine. (Adding spinach right before serving will help it maintain its rich green color).
Divide among serving bowls and garnish with shredded parmesan cheese.