Qual é a diferença entre os métodos register() e boot() no ServiceProvider do Laravel e como eles podem ser usados em quais cenários?