$request->session()->get('applicationKey'), 'applications' => UserApplicationResource::collection($request->user()->userApplications)->resolve(), 'status' => $request->session()->get('status'), ]); } public function store(StoreUserApplicationRequest $request): RedirectResponse { $result = $this->createUserApplication->handle($request->user(), $request->validated()); return to_route('applications.edit') ->with('applicationKey', $result['plain_text_key']) ->with('status', "{$result['application']->name} was created. Save this key now; it will not be shown again."); } public function destroy(Request $request, UserApplication $userApplication): RedirectResponse { $this->abortUnlessOwner($request, $userApplication); $name = $this->deleteUserApplication->handle($userApplication); return to_route('applications.edit') ->with('status', "{$name} was removed."); } private function abortUnlessOwner(Request $request, UserApplication $userApplication): void { $user = $request->user(); abort_unless($userApplication->user_id === $user->id, 403); } }