Я бы на месте автора попробовал следующее:
1. Сделал бы оба поля в реквесте обязательными
2. На роут сохранения добавил бы миддлварь на проверку слага. Если слаг уже есть, то пускаем к валидатору, если нет, то пытаемся сгенерировать.
3. В валидаторе пишем примерно такое правило - required|unique:category. Кроме того, что оно проверит на наличие, так ещё и в базу посмотрит, есть ли такой слаг.
4. Если ревест не пройдёт валидацию, то просто вернёт человека (ну или можешь расширить валидатор и сказать ему, что такое уже есть(или похожее)