Explain register and boot methods in the service provider class.

A service provider is responsible for binding services into the service container, which makes them available for dependency injection.

register: This method is used to bind services into the service container. You should use it to define any bindings or singletons that your application needs. The register method is called first, so it is the place to configure and register services before they are needed by your application.

boot: This method is used to perform any actions that need to happen after all services are registered. It is ideal for event listeners, route registrations, or any other setup that requires the services to be fully registered and available.