Ваша проверка на данный момент не имеет особого смысла, вы проверяете по некоторому произвольному числу, которое может или не может существовать в вашей базе данных.
Я собираюсь предположить, что вы хотите принимать только идентификаторы категории которые существуют в базе данных, поэтому я бы использовал правило exists
:
$request->validate([
'title' => 'required|string|between:6,50',
'category_id' => 'required|integer|exists:categories,id'
]);
Из документов :
exists:table,column
Проверяемое поле должно существовать в данной таблице базы данных.
Basi c Правило использования существующих
'state' => 'exists:states'
Если параметр столбца не указано, будет использоваться имя поля.
Указание имени пользовательского столбца
'state' => 'exists:states,abbreviation'