Sauté the vegetables: In a large pot, heat olive oil over medium heat. Add the onion, carrots, and celery. Cook until softened, about 6–7 minutes. Stir in garlic, salt, pepper, Italian seasoning, oregano, and red pepper flakes
Cook the beef: Add the ground beef to the pot. Season with salt and pepper and cook until browned, breaking it up with a spoon. Drain excess fat if needed.
Build the base: Stir in tomato paste and cook for 1 minute to deepen the flavor. Then add marinara sauce, beef broth, water, beans, parmesan rind, and bay leaves. Bring everything to a simmer. Cover and cook over medium-low heat for 25 minutes.
Add pasta & spinach: Stir in the uncooked pasta and fresh spinach. Squeeze in the lemon juice. Cook uncovered until the pasta is tender, about 10 minutes.
Finish & serve: Remove bay leaves and parmesan rind. Ladle the soup into bowls and top with freshly grated parmesan.
Pro Tip: Add extra broth or water when reheating leftovers, as the pasta will continue to absorb liquid.