'integer', 'otp_attempts' => 'integer', 'token_expires_at' => 'datetime', 'otp_expires_at' => 'datetime', 'auth_verified_at' => 'datetime', 'signed_at' => 'datetime', 'consent_agreed_at' => 'datetime', ]; protected $hidden = [ 'access_token', 'otp_code', ]; public function contract(): BelongsTo { return $this->belongsTo(EsignContract::class, 'contract_id'); } public function signFields(): HasMany { return $this->hasMany(EsignSignField::class, 'signer_id'); } public function scopeForTenant($query, $tenantId) { return $query->where('tenant_id', $tenantId); } }