Устройство возвращает массив, поэтому вы не можете вызвать first
для массива. Попробуйте это:
return optional($this->model->where('abbreviation', 'like', "%$string%")->first())->id;
Точно так же, как вы знаете, first
может вернуть null
, поэтому вы должны проверить на ноль, прежде чем пытаться получить id
.
Или, как @DeesOomens предложил обернуть в необязательный.