exists && $document->isDirty()) { $document->versions()->create(['version' => $document->version, 'document' => $document->getOriginal('document') ?: [], 'settings' => $document->getOriginal('settings') ?: [], 'created_by' => $userId]); } $document->fill($payload); $document->updated_by = $userId; if (! $document->exists) { $document->created_by = $userId; } else { $document->version++; } $document->save(); return $document->refresh(); }); } }