id = $model->id; $instance->name = $model->name; $instance->description_html = $model->descriptionHtml(); $instance->priority = $model->priority; $instance->tags = ZipExportTag::fromModelArray($model->tags()->get()->all()); $pages = $model->getVisiblePages()->filter(fn (Page $page) => !$page->draft)->all(); $instance->pages = ZipExportPage::fromModelArray($pages, $files); return $instance; } /** * @param Chapter[] $chapterArray * @return self[] */ public static function fromModelArray(array $chapterArray, ZipExportFiles $files): array { return array_values(array_map(function (Chapter $chapter) use ($files) { return self::fromModel($chapter, $files); }, $chapterArray)); } }