
Prepare the meat sauce: In a large pot, brown ground beef over medium-high heat. Drain any excess fat. Add chopped onions, garlic, carrots, and celery. Cook until softened, about 5-7 minutes. Stir in tomato paste, crushed tomatoes, tomato sauce, dried oregano, dried basil, salt, and pepper. Bring to a simmer, then reduce heat and cook for at least 30 minutes, stirring occasionally.
Make the béchamel sauce: In a medium saucepan, melt butter over medium heat. Whisk in flour and cook for 1-2 minutes to create a roux. Gradually whisk in milk until smooth. Bring to a simmer, stirring constantly, until the sauce thickens. Remove from heat and stir in grated Parmesan cheese, salt, and white pepper.
Cook the lasagna noodles: Cook lasagna noodles according to package directions until al dente. Drain and rinse with cold water to prevent sticking.
Assemble the lasagna: Preheat oven to 375°F (190°C). Spread a thin layer of meat sauce on the bottom of a 9x13 inch baking dish. Arrange a layer of lasagna noodles over the sauce, overlapping as needed.
Spread a layer of ricotta cheese over the noodles, followed by a layer of meat sauce and a layer of béchamel sauce. Sprinkle with shredded mozzarella cheese.
Repeat layers: Continue layering noodles, ricotta cheese, meat sauce, béchamel sauce, and mozzarella cheese until all ingredients are used, ending with a layer of meat sauce and mozzarella cheese on top.
Bake: Cover the baking dish with foil and bake for 25 minutes. Remove the foil and bake for another 20 minutes, or until the cheese is melted and bubbly and the lasagna is heated through. Let stand for 10-15 minutes before serving.