Smart Web Agency built a Laravel 12 web application for Virtuous Restaurants to automate order synchronisation, payment handling, and restaurant payouts.
The system integrates GloriaFood, Stripe Connect, and CRON-based jobs to deliver end-to-end financial transparency for multiple restaurant branches.
Project Brief
Smart Web Agency built a Laravel 12 web application for Virtuous Restaurants to automate order synchronisation, payment handling, and restaurant payouts.
The system integrates GloriaFood, Stripe Connect, and CRON-based jobs to deliver end-to-end financial transparency for multiple restaurant branches.
Client
Liquid Themes
The Challenge
Virtuous Restaurants managed dozens of partner outlets receiving online orders through GloriaFood.
The business required a unified platform to:
Sync orders from GloriaFood in real time
Match payments with Stripe charges automatically
Calculate platform, processing, and Stripe fees
Release payouts to partner restaurants reliably and on schedule
Technology Stack
Framework: Laravel 12 (PHP 8.2)
Database: MySQL
Payments: Stripe Connect + Webhooks + Transfer API
Frontend: TailwindCSS
Automation: CRON jobs for scheduled tasks and payouts
The Challenge
Virtuous Restaurants managed dozens of partner outlets receiving online orders through GloriaFood.
The business required a unified platform to:
● Sync orders from GloriaFood in real time
● Match payments with Stripe charges automatically
● Calculate platform, processing, and Stripe fees
● Release payouts to partner restaurants reliably and on schedule
Client
Liquid Themes
Technology Stack
● Framework: Laravel 12 (PHP 8.2)
● Database: MySQL
● Payments: Stripe Connect + Webhooks + Transfer API
● Frontend: TailwindCSS
● Automation: CRON jobs for scheduled tasks and payouts
Client
Liquid Themes
Our Approach
Order Webhook Integration
GloriaFood sends order webhooks to the Laravel app, which identifies the correct restaurant using its mapped restaurant ID.
Payment Matching
Each order is linked to its Stripe charge ID and payment intent, ensuring full traceability from order to payout.
Automated Fee Calculation
A scheduled job retrieves payment details from Stripe, calculates
Platform commission
Stripe processing fees
Final restaurant payout
Configurable Payout Delay
Admins set delay periods before releasing funds. Once due, Stripe Transfers automatically send payments to each restaurant’s connected account.
Reporting & Logs
Detailed revenue reports by restaurant and order type (pickup, delivery, dine-in) plus complete payment logs for auditing and compliance.
Security & VAPT
Continuous vulnerability monitoring
Plugin and theme security hardening
Firewall rules and malware prevention
Regular VAPT-style reviews
Zero-trust access policies for WordPress and server access
Server & Infrastructure Performance
Server response time optimisation
Hosting configuration and tuning
Database performance optimisation
Caching and CDN management
Uptime and failure prevention
WordPress Core & Plugin Governance
Proactive plugin updates
Conflict testing before production release
PHP and WordPress core version management
Rollback and recovery processes
Our Approach
Order Webhook Integration
GloriaFood sends order webhooks to the Laravel app, which identifies the correct restaurant using its mapped restaurant ID.
Payment Matching
Each order is linked to its Stripe charge ID and payment intent, ensuring full traceability from order to payout.
Automated Fee Calculation
A scheduled job retrieves payment details from Stripe, calculates
Platform commission
Stripe processing fees
Final restaurant payout
Configurable Payout Delay
Admins set delay periods before releasing funds. Once due, Stripe Transfers automatically send payments to each restaurant’s connected account.
Reporting & Logs
Detailed revenue reports by restaurant and order type (pickup, delivery, dine-in) plus complete payment logs for auditing and compliance.
Our Approach
1. Order Webhook Integration
GloriaFood sends order webhooks to the Laravel app, which identifies the correct restaurant using its mapped restaurant ID.
2. Payment Matching
Each order is linked to its Stripe charge ID and payment intent, ensuring full traceability from order to payout.
3. Automated Fee Calculation
A scheduled job retrieves payment details from Stripe, calculates:
○ Platform commission
○ Stripe processing fees
○ Final restaurant payout
4. Configurable Payout Delay
Admins set delay periods before releasing funds. Once due, Stripe Transfers automatically send payments to each restaurant’s connected account.
5. Reporting & Logs
Detailed revenue reports by restaurant and order type (pickup, delivery, dine-in) plus complete payment logs for auditing and compliance.
6. Payment Flow
Client
Liquid Themes
Payment Flow
The Result
100 % automation of payouts — zero manual intervention
Accurate reconciliation between orders and Stripe charges
Flexible control over payout schedules
Real-time visibility into revenue and fees
Improved trust among partner restaurants through transparent reporting
The Result
● 100 % automation of payouts — zero manual intervention
● Accurate reconciliation between orders and Stripe charges
● Flexible control over payout schedules
● Real-time visibility into revenue and fees
● Improved trust among partner restaurants through transparent reporting
Client
Liquid Themes
Conclusion
The Virtuous Restaurants web app delivers a scalable, audit-ready payment pipeline built on Laravel 12 and Stripe Connect. By combining webhook automation, vector-accurate fee calculations, and scheduled payouts, Smart Web Agency created a robust financial backbone for multi-restaurant management — a proven model for hospitality businesses across the UK.
Conclusion
The Virtuous Restaurants web app delivers a scalable, audit-ready payment pipeline built on Laravel 12 and Stripe Connect.
By combining webhook automation, vector-accurate fee calculations, and scheduled payouts, Smart Web Agency created a robust financial backbone for multi-restaurant management — a proven model for hospitality businesses across the UK.
This website uses cookies to improve your web experience.
See your Privacy Settings to learn more.