public static function delete(Encuesta $encuesta) { if ($encuesta->resoluciones()->count() > 0) { throw new \Exception("No se puede eliminar una encuesta con resoluciones"); } return DB::transaction(function () use($encuesta) { $encuesta->preguntas->each(function (Pregunta $pregunta) { $pregunta->solucionesPosibles->each(function (SolucionPosible $solucionPosible) { $solucionPosible->delete(); }); $pregunta->delete(); }); $encuesta->delete(); return true; }); }