Heat a large pot over medium-low heat and add the olive oil
Add the onions, seasoning with salt and pepper, and sauté for 2-3 minutes until beginning to soften
Add the chili flakes and toast for 1 minute, then increase heat to medium and add the ground beef, stirring to break up
When the ground beef is mostly cooked through, add the garlic and sauté for 1 minute (drain beef before adding if necessary)
Add the basil, parsley and oregano and toast for 30 seconds, then add the crushed tomatoes, beef broth, salt and pepper and stir (transfer some of the broth to the tomato can then pour into pot)
Stir in the noodles then increase heat to high and bring to a boil, then reduce to medium-low, stirring occasionally so noodles do not stick
When the noodles are very al dente, turn off heat and stir in the spinach and cream (about 20-25 minutes; see Note 2)
Add 1 cup of the mozzarella and ¼ cup of the Parmesan and stir until melted
Make the herbed ricotta; in a separate bowl, mix together the ricotta, 2 tbsp of the fresh parsley, salt and pepper
Ladle soup into bowls and serve garnished with the remaining ½ cup mozzarella, Parmesan and fresh parsley; use a cookie scoop or a large spoon to dollop ricotta on top