Проблема заключается в вашей обработке old('device', $device->name)
Помните, что должны быть выбраны, их значение представляет собой базовое внутреннее значение
Итак, давайте посмотрим на
<select id="device" name="device" class="form-control @error('device') is-invalid @enderror" autocomplete="device">
<option value="" selected >@lang('Choose')...</option>
@foreach($devices as $device)
<option value="{{ old('device', $device->name) }}">{{ old('device', $device->name) }}</option>
@endforeach
</select>
Первоначально , 'device' пусто, поэтому вы создаете список выбора, который выглядит как
<option value="" selected>...</option>
<option value="{{ $device->name }}>{{ $device->name }}</option>
с выбранной пустой опцией
Однако при ошибке проверки ваш код становится следующим
<option value="" selected>...</option>
<option value="{{ old('device') }}>{{ old('device' }}</option>
, при этом ни один из них не выбран, и все они содержат одинаковые value
и display
Итак, вы хотите сделать следующее
<select id="device" name="device" class="form-control @error('device') is-invalid @enderror" autocomplete="device">
<option value="">@lang('Choose')...</option>
@foreach($devices as $device)
<option {{ old('device') == $device->name ? 'selected="selected"' : '' }} value="{{ $device->name }}">{{ $device->name }}</option>
@endforeach
</select>