Purpose
Services exist to communicate with external systems (Stripe, APIs, third-party integrations). When a service exists, it must not contain domain logic that belongs in a model or manage model state directly.
Payment services may call framework SDK methods that perform external billing workflows, such as Laravel Cashier subscription builders, subscription lifecycle methods (newSubscription(), checkout(), cancelNow(), addPriceAndInvoice(), removePrice(), swap()), and payment-method methods (addPaymentMethod(), updateDefaultPaymentMethod(), deletePaymentMethod()). Treat those as external Stripe operations, not ordinary domain model writes, as long as the service is not manually assigning unrelated Eloquent attributes or calling generic persistence methods for app-owned state.