gente, eu fiz uma postagem fazendo praticamente essa mesma pergunta,cujo qual eu mesmo respondi, porém ao editar o registro percebi que a lógica não é a mesma. eu fiz da forma citada abaixo porém não funciona.
<input type="text" class="form-control {{$errors->has('nome')?'is-invalid':''}}" name="nome" id="nome" placeholder="Nome" value="@if(old('nome')!=$psi->psi_nome) {{$psi->psi_nome}} @else {{old('nome')}} @endif " >
para o tipo input eu fiz.
value="{{ old('nome', $psi->psi_nome) }}" a lógica é a seguinte, caso o old seja vazio irá retornar o dado do banco.
para o tipo select eu fiz dessa forma.
<option @if (old('cargo', $psi->psi_funcao_exercida)=="1") ? {{'selected="selected"'}} @endif value="1">Psicólogo</option>
<option @if (old('cargo', $psi->psi_funcao_exercida)=="2") ? {{'selected="selected"'}} @endif value="2">Estagiário</option>
<option @if (old('cargo', $psi->psi_funcao_exercida)=="3")? {{'selected="selected"'}} @endif value="3">Extensionista</option>