Season the cubed chicken with paprika, black pepper, salt, and soy sauce. Marinate for 15 to 20 minutes. Heat oil in a large pan over medium high heat and cook the chicken until browned and cooked through. Remove and set aside.
In the same pan, melt the butter over medium heat. Add the onion and garlic and sauté until softened. Add the baby spinach and stir until wilted. Add the chicken back in and mix. Transfer to a bowl and stir in the ricotta and Parmesan until combined and creamy. Season to taste and set aside.
In the same pan, melt the butter over medium heat. Add the garlic and lemon zest and sauté for a minute. Add the flour and stir for a minute to cook it out. Gradually pour in the milk, stirring to avoid lumps. Add the cream and stir until smooth and thickening. Add all the spices, lemon zest, and lemon juice. Stir and simmer for a couple of minutes. Add the cheddar and stir until melted. Pour in the stock and stir until silky. Remove from heat and fold in the chopped spinach.
Preheat the oven to 180°C. Spread a layer of white sauce on the base of the baking dish. Add a layer of lasagna sheets, then a layer of chicken mixture, then more white sauce. Repeat until you run out of filling, finishing with a generous layer of white sauce on top. Scatter the mozzarella and Parmesan evenly over the top.
Cover loosely with foil and bake at 180°C for 20 to 25 minutes until bubbling. Remove the foil and bake uncovered for a further 10 to 15 minutes until the top is golden and bubbling. Total baking time is 35 to 40 minutes.
If using pre boiled sheets, reduce the baking time to 25 to 30 minutes.
Rest for 10 minutes before slicing and serving.