'integer', 'completion_tokens' => 'integer', 'total_tokens' => 'integer', 'cost' => 'decimal:6', 'timestamp' => 'datetime', 'metadata' => 'array', 'request_payload' => 'array', 'response_payload' => 'array', 'response_time_ms' => 'integer', ]; // Relationships public function gatewayUser() { return $this->belongsTo(GatewayUser::class, 'gateway_user_id', 'user_id'); } public function apiKey() { return $this->belongsTo(ApiKey::class, 'api_key', 'token'); } // Scopes public function scopeSuccess($query) { return $query->where('status', 'success'); } public function scopeFailed($query) { return $query->where('status', 'failed'); } public function scopeRecent($query, $days = 7) { return $query->where('timestamp', '>=', now()->subDays($days)); } public function scopeByProvider($query, string $provider) { return $query->where('provider', $provider); } public function scopeByModel($query, string $model) { return $query->where('model', $model); } }