Preheat oven to 400°F. Coat a 9x13 pan with cooking spray and set aside.
Bring a large pot of salted water to a boil. Cook the rice for 10 minutes. Drain and rinse under cold water to stop the cooking process. Transfer to a bowl with 1 tablespoon of olive oil and ½ cup Parmesan cheese.
Add the onion, carrot, celery and garlic to a food processor and puree until a paste forms. Heat remaining olive oil in a large skillet over medium-high heat. Add the pureed veggies and cook until the water has evaporated and they have become brown, about 10 minutes.
Add the ground beef, crumbling the meat with a wooden spoon. Cook for about 5-7 minutes or until the meat is cooked through and beginning to brown.
Stir in the oregano, thyme and red pepper flakes and cook for an additional minute. Add the tomato puree, tomato paste, salt, and pepper, stirring to combine. Bring to a boil and then lower the heat, simmering for 10 minutes.
Add half of the rice to the baking dish. Add half of the meat mixture, before adding 1 cup of mozzarella and ¼ cup Parmesan cheese. Add the remaining rice and top with the remaining meat mixture and cheese. Bake for 15-20 minutes or until the top is golden brown and bubbly.
Notes
You can skip pureeing the veggies and just cook in the skillet before adding the beef if you prefer.
Parboil the rice as it will cook more when baking in the oven.
Don't use pre-shredded cheese. It contains wood pulp and preservatives so it doesn't melt well.
Let the dish rest for 10 minutes so you can get a clean scoop of everything out.