На момент вызова у тебя все проверено, с точки зрения id, а в функции что будет вызвана сделаешь нужные тебе манипуляции, и если что то не так выдашь сообщение об ошибке.
Только один вопрос, если ты проверяешь slug, зачем из переданого в запрросе slug генерировать slug через Str::slug(), я так понял у тебя в запросе уже готовый slug.