'array']; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function subject() { return $this->morphTo(); } public static function log(int $userId, string $type, mixed $subject = null, array $data = []): self { return static::create([ 'user_id' => $userId, 'type' => $type, 'subject_type' => $subject ? get_class($subject) : null, 'subject_id' => $subject?->id, 'data' => $data, ]); } }