Heat milk in a large heavy bottomed pan over medium-high heat. Stir occasionally.
When milk starts to boil, add lemon juice (or vinegar). In about 2-4 minutes, the milk will curdle and the curds (paneer) separates from whey (yellow liquid). Remove from heat.
Place a fine mesh sieve over a large bowl.
Place a muslin cloth or cheesecloth in the sieve.
Pour curdled mixture into the sieve. Bring the ends of the muslin cloth together and squeeze out excess liquid. You will get thick paneer. Alternatively, you can use store bought paneer.
Place paneer in a wide bowl.
Knead to make it smooth and soft. Transfer to a large frying pan.
Add condensed milk.
Place the pan over low heat.
Stir and cook until the mixture dries up and turns thick.
Turn off heat.
Stir in ground cardamom, and sultanas and nuts (if using).
When the mixture cools down slightly, roll into balls.