Quelle est la différence entre les méthodes register() et boot() dans le ServiceProvider de Laravel, et dans quels scénarios peuvent-elles être utilisées ?