*/ protected function casts(): array { return [ 'source_class' => SourceClass::class, 'source_metadata' => 'array', 'latest_evidence_state' => EvidenceState::class, 'latest_identity_state' => IdentityState::class, 'latest_claim_state' => ClaimState::class, 'latest_captured_at' => 'datetime', ]; } public function workspace(): BelongsTo { return $this->belongsTo(Workspace::class); } public function tenant(): BelongsTo { return $this->belongsTo(ManagedEnvironment::class, 'managed_environment_id'); } public function managedEnvironment(): BelongsTo { return $this->tenant(); } public function providerConnection(): BelongsTo { return $this->belongsTo(ProviderConnection::class); } public function resourceType(): BelongsTo { return $this->belongsTo(TenantConfigurationResourceType::class); } public function latestEvidence(): BelongsTo { return $this->belongsTo(TenantConfigurationResourceEvidence::class, 'latest_evidence_id'); } public function evidence(): HasMany { return $this->hasMany(TenantConfigurationResourceEvidence::class, 'resource_id'); } }