isElectionStarted()) return response()->json([ 'status' => 'failed', 'message' => 'Election hasn\'t started yet.' ]); $this->validateRequest($request); $this->stopElection($request); $user = $request->user(); activity() ->withProperties([ 'election_id' => Util::getCurrentElection(), 'election_name' => (string) $request->input('name'), 'stopped_by_admin_id' => $user ? (int) $user->id : null, 'stopped_by_admin_email' => $user ? $user->email : null, 'ip' => $request->ip(), 'user_agent' => $request->userAgent(), ]) ->log('election stop'); return response()->json([ 'status' => 'success', 'message' => 'Election has finished.', 'election' => Election::find(Util::getCurrentElection()) ]); } private function stopElection($request) { $election = Election::find(Util::getCurrentElection()) ->update([ 'status'=>3, 'name'=>$request->name, 'end'=>date('Y-m-d H:i:s') ]); Election::create(); } private function validateRequest($request) { $id = $request->user()->id; $this->validate($request, [ 'password' => "required|password:users,password,$id" ]); } private function isElectionStarted() { return Util::getElectionStatus() == 2; } }