subDays(30); $models = collect(File::allFiles($modelsPath)) ->map(fn(SplFileInfo $file) => 'App\\Models\\' . str_replace( ['/', '.php'], ['\\', ''], $file->getRelativePathname() )) ->filter(fn(string $class) => method_exists($class, 'initializeSoftDeletes')) ->values() ->each(function (string $class) use ($dateLimit) { $class::onlyTrashed() ->where('deleted_at', '<', $dateLimit) ->cursor() ->each(fn($model) => $model->forceDelete()); }); } }