Overview
Your pricing plans are configured in a simple PHP array that’s easy to customize. This guide shows you exactly how to modify plans, add features, and display them beautifully in your application.Plans Configuration File
Location:lang/en/prices.php
This file contains all your pricing plans for different payment providers (Stripe, LemonSqueezy, Paddle).
Plan Structure
Each plan is an array with these fields:Complete Example
Field Explanations
Required Fields
name (string)
The display name of the plan shown to users.
Examples:
- “Free”
- “Starter”
- “Professional”
- “Enterprise”
slug (string)
- For Free plans: Just use
'free' - For Paid plans: Must match your Stripe Price ID exactly
- Format:
price_1ABC...xyzfrom Stripe dashboard - Important: This is how the system knows which Stripe price to charge!
description (string)
A short description that appears under the plan name.
Tips:
- Keep it under 60 characters
- Focus on who the plan is for
- Be clear and benefit-focused
- “Perfect for individuals”
- “For growing teams”
- “Enterprise-grade features”
price (number or string)
The monthly price in your currency.
Examples:
0for free plans'29.99'for $29.99/month'99'for $99/month
interval (string)
The billing frequency.
Options:
'month'- Monthly billing'year'- Annual billing
features (array)
List of features included in this plan.
Best Practices:
- Start with “Everything in [Previous Plan]” for higher tiers
- Lead with most valuable features
- Use clear, benefit-focused language
- Keep each feature to one line
- Use action verbs where possible
Optional Fields
bestseller (boolean)
Shows a “Most Popular” or “Recommended” badge on the plan card.
Customizing Plan Display
Adding Annual Plans
Create discounted annual versions of your plans:Adding Addon/Per-Seat Pricing
For usage-based or per-seat pricing:Custom Plan Properties
Add any custom properties you need:Feature Writing Tips
Good Feature Examples
✅ Clear and Benefit-Focused:- “Unlimited projects”
- “Priority support (< 4hr response)”
- “50GB file storage”
- “Advanced analytics dashboard”
- “SSO / SAML authentication”
- “More stuff”
- “Better features”
- “API endpoints”
- “Enterprise capabilities”
Using Icons with Features
In your Blade view, you can add icons:Displaying Plans
The plans are displayed via a Livewire component: Component:app/Livewire/Plans.php
resources/views/livewire/plans.blade.php
You can customize the view to match your design.
Multiple Billing Intervals
To let users toggle between monthly and annual:1. Add Both Intervals to Config
2. Add Toggle in Livewire Component
3. Add Toggle in View
Testing Your Plans
- Update the configuration file
- Clear config cache:
php artisan config:clear - Visit your pricing page:
/pricingor wherever you display plans - Verify:
- All plans display correctly
- Prices are formatted properly
- Features lists look good
- “Subscribe” buttons work
Best Practices
Pricing Strategy
- Three tiers is optimal - Free, Starter, Pro
- Make middle tier “Most Popular” - Anchors customers there
- Clear differentiation - Each tier should have obvious value jump
- Price anchoring - Show higher tier to make middle seem reasonable
Feature Organization
- Most important first - Lead with your best features
- Cumulative value - “Everything in Starter plus…”
- Specificity - “50GB storage” not “more storage”
- Benefits over features - “Priority support” not “dedicated queue”
Updating Plans
When changing plans:- Update
lang/en/prices.php - Create new prices in Stripe (don’t modify existing)
- Update
slugwith new Price ID - Clear cache:
php artisan config:clear - Test checkout flow
- Existing subscriptions stay on old prices (grandfathered)
Next Steps
- Stripe Setup - Configure Stripe integration
- Subscription Features - Gate features by plan
- Billing Portal - Let customers manage subscriptions

