Laravel - Trazer todos os registros quando o parâmetro for vazio

gente, como faço para trazer todos os registros caso o parâmetro não esteja preenchido?

minha consulta é essa…

      $psi = DB::table('psicologos') 
      ->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 
        THEN 
        'Psicólogo' WHEN  PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')
      ->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo)
      ->where('emp_codigo', '=', session('empresa_id'))
      ->orderBy('psi_nome')
      ->paginate(10);
        

// meu problema está nesse filtro   ->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo).
gostaria de trazer todos os registros caso $request->tipo esteja vazio.

alguém?

me mandaram fazer algo assim… mas está dando erro de sintax.
é serio mesmo que pra fazer algo tão simples tenho que escrever várias linhas de código?
não existe nada que seja ,$request->tipo or $request->tipo is null?
ou então um case no where?

if(!is_null($request->tipo)){
$psi>where(‘PSI_FUNCAO_EXERCIDA’,’=’,$request->tipo)
}

  ->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 
    THEN 
    'Psicólogo' WHEN  PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')
  ->where('psi_nome','LIKE',"%".$request->nome."%")
  ->where(DB::raw('coalesce(psi_crp,"")'),'LIKE',"%".$request->crp."%")
  ->where(DB::raw('coalesce(psi_matricula,"")'),'LIKE',"%".$request->matricula."%")
  ->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo)
  ->where('emp_codigo', '=', session('empresa_id'))
  ->orderBy('psi_nome')
  ->paginate(10);

vou deixar uma gambiarra temporária até descobrir como é.

    if(!is_null($request->tipo)){
      $psi = DB::table('psicologos') 
      
      
      ->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 
        THEN 
        'Psicólogo' WHEN  PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')
      ->where('psi_nome','LIKE',"%".$request->nome."%")
      ->where(DB::raw('coalesce(psi_crp,"")'),'LIKE',"%".$request->crp."%")
      ->where(DB::raw('coalesce(psi_matricula,"")'),'LIKE',"%".$request->matricula."%")
      ->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo)
      ->where('emp_codigo', '=', session('empresa_id'))
      ->orderBy('psi_nome')
      ->paginate(10);
     }else{
      $psi = DB::table('psicologos') 
      
      
      ->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 
        THEN 
        'Psicólogo' WHEN  PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')
      ->where('psi_nome','LIKE',"%".$request->nome."%")
      ->where(DB::raw('coalesce(psi_crp,"")'),'LIKE',"%".$request->crp."%")
      ->where(DB::raw('coalesce(psi_matricula,"")'),'LIKE',"%".$request->matricula."%")
      ->where('emp_codigo', '=', session('empresa_id'))
      ->orderBy('psi_nome')
      ->paginate(10);


     }

https://laravel.com/docs/5.5/queries#conditional-clauses