*/ use HasFactory; protected $fillable = [ 'name', 'rules', ]; public function participants(): BelongsToMany { return $this->belongsToMany(User::class, 'participants')->withPivot('role', 'display_name'); } public function ledgers(): HasMany { return $this->hasMany(Ledger::class); } public function invitations(): HasMany { return $this->hasMany(DynamicInvitation::class); } public function predefinedMutations(): HasMany { return $this->hasMany(PredefinedMutation::class); } public function chat(): MorphOne { return $this->morphOne(Chat::class, 'chatable'); } protected static function booted(): void { static::creating(function ($model) { $model->uuid = (string) Str::uuid(); }); static::created(function (Dynamic $dynamic) { $dynamic->chat()->create([]); }); } public function getRouteKeyName() { return 'uuid'; } public function getUrlAttribute(): string { return route('dynamics.show', $this); } }