/** * Store a newly created resource in storage. * @param Request $request * @return Response */ public function store(Request $request, $id) { $conf = Conference::find($id); if (is_null($conf)) { return response("No conference for id {$id}.", 405); } if (!Entrust::can(PermissionNames::ConferenceEventCreate($id))) { return response("Permission not found", 403); } return DB::transaction(function () use($request, $id) { $event = new Event(); $event->eventName = $request->input('eventName'); $event->date = $request->input('date'); $event->location = $request->input('location'); $event->startTime = $request->input('startTime'); $event->endTime = $request->input('endTime'); $event->capacity = $request->input('capacity'); $event->description = $request->input('description'); $event->conferenceID = $id; $event->save(); $role = RoleCreate::AllEventRoles($event->id); $user = Auth::user(); $user->attachRole($role); return response()->json(['id' => $event->id]); }); }