} public function playerReports($player) { return $this->reports()->where('reports.player', '=', $player->id); } public function playersReports($players) { $ids = array(); foreach ($players as $player) { $ids[] = $player->id; } return $this->reports()->whereIn('reports.player', $ids); } public function scenarii() { return $this->belongsToMany('Scenario', 'scenarii_maps', 'tournament', 'scenario'); } public function hasCompleteAccess() { return Auth::check() && Auth::user() == $this->user(); } } Tournament::deleting(function ($tournament) { $rounds = $tournament->rounds()->get(); foreach ($rounds as $round) { $round->delete(); } $tournament->players()->detach(); $tournament->maps()->detach(); $tournament->scenarii()->detach(); });