In a large pot or skillet, brown the ground beef over medium-high heat until it is fully cooked. Add the diced onion and garlic, sautéing until the onion is translucent and fragrant. Stir in the crushed tomatoes, tomato paste, beef broth, apple cider vinegar, oregano, and basil. Season with salt and pepper, then let the sauce simmer on low for about 20 minutes to allow the flavors to meld together.
While the sauce is simmering, combine the ricotta cheese, egg, half of the parmesan cheese, and fresh parsley in a medium bowl. Mix well until the egg is fully incorporated and the mixture is creamy. This step ensures the cheese layer stays together and does not run when you slice the finished dish.
Boil a large pot of salted water and cook the lasagna noodles according to the package instructions until they are al dente. Drain the noodles and lay them out flat on a piece of parchment paper to prevent them from sticking together. If you are using no-boil noodles, you can skip this step and go straight to assembly.
Preheat your oven to 375 degrees Fahrenheit. Spread a thin layer of meat sauce at the bottom of a 9 by 13 inch baking dish. Place a layer of noodles over the sauce, followed by a portion of the ricotta mixture and a generous sprinkle of mozzarella. Repeat the layers, sauce, noodles, ricotta, and mozzarella, until all ingredients are used, ending with a thick layer of mozzarella and the remaining parmesan on top.
Cover the baking dish with foil, making sure it does not touch the cheese to prevent sticking. Bake for 25 minutes, then remove the foil and bake for another 20 to 25 minutes until the cheese is bubbly and golden brown. Let the lasagna rest for at least 15 minutes before slicing. This resting period is crucial as it allows the layers to set so you get clean, beautiful slices.