Approvals by FFHS IT
CommunityEasily add approval workflows to your Filament-based Laravel app.
Author:
FFHS IT
Package health
Automated checks of this plugin's Composer package
15 checks
- Failed: GitHub Actions pinned to SHA — View details on Plumb
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No open Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Failed: Dependabot or Renovate configured — No dependency updater configuration found. View details on Plumb
- Skipped: Dependency update cooldown configured
- Failed: Provides a security policy — View details on Plumb
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Warning: Commit and release recency — Low activity: last commit 181 days ago; last release 181 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Warning:
Current Laravel version supported
—
Package does not co-install with current Laravel
13.0; the newest co-installable line is12.0, which receives security patches only (until 2027-02-24). -
Passed:
Current PHP version supported
—
Constraint
^8.2supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
This package allows you to easily implement approval workflows in your Filament-powered Laravel application. You can
define approval logic per model, specify who can approve (based on roles, permissions, or user logic), and expose
powerful UI actions using Filament’s Infolist components.
#Features:
- ✅ Native PHP Enums for status handling
- 🔁 Define multiple approval flows per model
- 👥 Role-, user-, and permission-based approval logic
- 🧩 Seamless integration with Filament Actions and Forms
- 🎨 Customize icons, labels, tooltips, colors per status
- 🛡️ Control button visibility and approval flow states based on business logic
- 🔔 Built-in confirmation prompts and notifications
- 🧱 Fully expandable
#Versions
| Filament Version | Package Version |
|---|---|
| 3.x | ^1.0.0 |
| 4.x | ^2.0.0 |
| 5.x | --- |
#Documentation
You can find the full documentation here.
#Preview
(The lower section are the Approvals)


#Installation
You can install the package via composer:
composer require ffhs/filament-package_ffhs_approvals
You can publish the config file with:
php artisan vendor:publish --tag="filament-package_ffhs_approvals-config"
You can publish and run the migrations with:
php artisan vendor:publish --tag="filament-package_ffhs_approvals-migrations"
php artisan migrate
#Usage
#1. Define Approval Status Enum
Create a PHP Enum implementing HasApprovalStatuses:
use Ffhs\Approvals\Contracts\HasApprovalStatuses;
enum MyApprovalStatus: string implements HasApprovalStatuses
{
case APPROVED = 'approved';
case INCOMPLETE = 'incomplete';
case DENIED = 'denied';
public static function getApprovedStatuses(): array
{
return [self::APPROVED];
}
public static function getDeniedStatuses(): array
{
return [self::DENIED];
}
public static function getPendingStatuses(): array
{
return [self::INCOMPLETE];
}
}
#2. Define Approval Flow in Model
Implement Approvable and use the HasApprovals trait:
namespace App\Models;
class MyModel extends Model implements Approvable{
use HasApprovals;
public function getApprovalFlows(): array
{
return [
'management_approved' => SimpleApprovalFlow::make()
->approvalStatus(ApplicationApprovalStatus::cases())
->aprovalBy([
SimpleApprovalBy::make('employee')
->any(),
SimpleApprovalBy::make('manager')
->permission('can_approve_for_manager'),
SimpleApprovalBy::make('hr')
->role('hr_role')
->atLeast(2)
])
];
}
}
#3. Basic Filament Action Usage
Render the approval action in your Filament resource or view:
// MyModelView.php
ApprovalActions::make('managment_aproved')
#Testing
composer install
./vendor/bin/testbench vendor:publish --tag="filament-package_ffhs_custom_forms-migrations"
./vendor/bin/testbench workbench:build
./vendor/bin/pest test
#Credits
#License
The MIT License (MIT). Please see License File for more information.
The author
With over 25 years of experience in distance learning, we are Switzerland's leading e-university and an alternative for students who want to combine work, family, and study.
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Sharp Theme
A theme that gives panels a precise, technical look with square corners, strong borders, and clear contrast.
Filament
Compact Theme
A theme that makes data-heavy panels easier to scan by fitting more useful information on each screen.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese