Например ты делаешь регистрацию пользователя:
1. Валидируешь данные в контроллере и вызываешь сервис с методом signUp
2. В методе signUp создаёшь пользователя в БД и возвращаешь токен авторизации
3. В контроллере вызываешь сервис по работе с email, чтобы отправить письмо пользователю новому
И т.д.
Делается для того, чтобы был понятный код и не было повторений и огромной логики в классах.
Почитай про SOLID, DRY
Поправьте меня, если где не прав