In a large heavy-bottomed pot, heat the butter and olive oil over medium-high heat.
Add onion, saute for 2 to 3 minutes. Add the garlic, carrots and celery and saute for an additional 4 minutes.
Add broth, crushed tomatoes, bay leaves, dried basil, dried oregano and season with salt and pepper. Let the soup come to a boil and add the orzo or pasta of choice. Reduce heat to a simmer and cook until pasta is al dente, stirring occasionally so orzo doesn't stick.
Taste to adjust seasoning and add spinach. Once wilted, remove bay leaves and serve soup with freshly grated Parmesan and fresh basil (if available).
Notes
Nutrition data doesn't include optional Parmesan cheese.