public static function boot() { // NOTE events cycle is as follows: // saving -> creating -> created -> saved // saving -> updating -> updated -> saved // deleting -> deleted -> restoring -> restored parent::boot(); static::saved(function ($page) { // Build markup $markup = markup($page->source); self::where([$page->getKeyName() => $page->getKey()])->limit(1)->update(['markup' => $markup]); // Backup version return Version::createFromPage($page); }); }