public function favourite($user) { DB::transaction(function () use($user) { try { FavouriteBeatmapset::create(['user_id' => $user->user_id, 'beatmapset_id' => $this->beatmapset_id]); } catch (QueryException $e) { if (is_sql_unique_exception($e)) { return; } else { throw $e; } } $this->favourite_count = DB::raw('favourite_count + 1'); $this->save(); }); }