Rinse the aubergines then slice them into thin strips using a potato-peeler.
Heat 4 tablespoons of the olive oil in a nonstick saucepan and gently cook the aubergine strips.
Heat the remaining olive oil in another saucepan and cook the onions gently until they become transparent. Add the lamb, diced tomatoes, cinnamon and paprika and season with salt and pepper. Cook over a low heat for around 10 minutes.
Whisk the eggs in a large bowl, then add the milk, yogurt and chilli powder. Mix well.
Lightly oil a gratin dish. Place the aubergines in the bottom of the dish and cover with rice. Add the meat–tomato–onion mixture. Pour over the yogurt sauce. Place in a preheated oven, 180°C (350°F), Gas Mark 4, for around 35 minutes. About 5 minutes before the end of cooking, sprinkle with grated Gruyère and return to the oven to brown. Serve immediately.