public function give($achievement_id, Request $request) { $achievement = Achievement::find($achievement_id); $user = User::find($request->user_id); if (!$user || !$achievement) { abort(404); } $achieved = $user->achieved(); $hasAchievement = false; foreach ($achieved as $entry) { if ($entry->id == $achievement_id) { $hasAchievement = true; } } if (!$hasAchievement) { $new = array('user_id' => $request->user_id, 'achievement_id' => $achievement_id); $relation = new AchievementOwnership($new); $relation->save(); Session::flash('flash_message', "Achievement {$achievement->name} has been given to {$user->name}."); } else { Session::flash('flash_message', "This user already has this achievement"); } return Redirect::back(); }