Boil the eggs for 8-10 minutes, cool them in cold water, peel, and set them aside for later use.
Heat oil in a pan, add bay leaves, cinnamon, cardamom, and cloves. Sauté for a few seconds until fragrant.
Add chopped onions to the pan. Sauté until golden brown, then stir in ginger-garlic paste. Cook until fragrant.
Add chopped tomatoes, cook until soft, then add turmeric, cumin, coriander powder. Stir well and cook until oil separates.
Add cubed potatoes (optional) and sauté until golden. Season with salt, add water, and cook potatoes until tender.
Pour in 2 cups of water and bring to a boil. Lower heat and simmer for 5-7 minutes to blend flavors.
Add boiled eggs to the curry, and simmer for 5 minutes. Garnish with garam masala and fresh coriander leaves before serving.