user(); // coordenação/secretaria (ou quem tiver) if ($user->can('alunos.ver_todos')) { $alunos = Aluno::query()->get(); return view('escolas.alunos', compact('alunos')); } // aluno/responsável if ($user->can('alunos.ver_meus')) { $alunos = Aluno::query() ->where(function ($q) use ($user) { $q->where('user_id', $user->id) ->orWhereHas('responsaveis', fn($r) => $r->where('users.id', $user->id)); }) ->get(); return view('alunos.index', compact('alunos')); } abort(403); } public function updateOrCreate(Request $request) { $aluno = Aluno::updateOrCreate( ['cpf' => $request->cpf], [ 'nome' => $request->nome, 'id_turma' => $request->id_turma, 'id_escola' => $request->id_escola, 'data_nascimento' => $request->data_nascimento, 'data_inscricao' => $request->data_inscricao, 'cpf' => $request->cpf, 'user_id' => $request->user_id, 'responsavel_user_id' => $request->responsavel_user_id, ] ); return redirect()->route('alunos')->with('success', 'Aluno Criado|Atualizado com sucesso.'); } }