¿Cuál es la diferencia entre los métodos register() y boot() en ServiceProvider de Laravel y cómo se pueden usar en qué escenarios?