Heat the oven to 350°F (175°C). Lightly grease a 9-by-13-inch baking dish or a 3-quart casserole dish.
Heat the oil in a large skillet over medium heat. Add the onion and cook for 5 to 6 minutes, stirring occasionally, until softened. Add the garlic and cook for 30 seconds.
Add the ground beef. Break it up with a spoon and cook for 7 to 9 minutes, until no pink meat remains. Carefully drain off excess fat if needed.
Stir in the curry powder, turmeric, salt, pepper, cinnamon, apricot preserves or chutney, vinegar, Worcestershire sauce, and raisins, if using. Cook for 1 minute so the seasonings become fragrant.
Place the torn bread in a small bowl and pour 1/4 cup (60 mL) of the milk over it. Let it stand for 2 minutes, then mash it with a fork. Stir the soaked bread and any remaining milk into the beef mixture. Spoon the mixture evenly into the prepared baking dish.
In the same small bowl, whisk the remaining 1/4 cup (60 mL) milk with the eggs until smooth. Pour the egg mixture evenly over the beef. Lay the bay leaves on top.
Bake uncovered for 25 to 30 minutes, until the topping is set and the center of the meat mixture reaches 160°F (71°C). Let the bobotie stand for 5 to 10 minutes before removing the bay leaves and serving.