Heat the oil over medium heat, add the onion, garlic, celery and carrot. Season with chilli flakes, oregano and salt. Stir and turn the heat to low. Cook for 20 minutes or so. Remove and drain, reserving the oil.
Heat the reserved oil over medium-high heat and fry the beef (in batches if necessary) until coloured and starting to crisp. Return the veg to the pan. Add the tomato puree and cook out briefly. Add tomato passata and stir. Pop on a lid and cook for as long as possible (2 hours or so is good).
Cook your pasta to al dente. Spread cheese in the bottom of a lasagna dish. Top with parmesan, pasta and 1 ball mozzarella. Cover with your sauce, then finish with the remaining mozzarella and parmesan.