Warm the olive oil in a large pot set over medium heat and sauté the garlic and onion for about 2 minutes until fragrant. Introduce the carrot and celery, continuing to cook for an additional 7 to 10 minutes until tender and the onion becomes sweet—this step lays the foundation of the soup’s depth of flavor. Stir in the lentils, crushed tomatoes, ground cumin, coriander, paprika, bay leaves, and broth. Elevate the heat to bring the mixture to a simmer, skimming off any foam that surfaces. Cover with a lid, reduce to medium-low heat, and let simmer gently for 35 to 40 minutes or until the lentils are tender throughout. Discard the bay leaves. Using an immersion blender, pulse the soup briefly two or three times to create a slightly thickened texture, or blend a portion in a blender and return it to the pot. Adjust the consistency with a splash of water if necessary, then season with salt and pepper. Finish by grating in lemon zest and squeezing in fresh lemon juice just before serving. Top with parsley and accompany with bread, ideally warm and generously buttered.