Skip to content

Instantly share code, notes, and snippets.

View edgrosvenor's full-sized avatar

Ed Grosvenor edgrosvenor

View GitHub Profile
@edgrosvenor
edgrosvenor / README.md
Created October 21, 2026 05:43
Redeploy every environment in a Laravel Cloud organization (for platform patches that need a redeploy)

Redeploy every Laravel Cloud environment

cloud-redeploy-all.sh uses the official Laravel Cloud CLI to list every application in an organization, show you the plan, and trigger a fresh deployment on every environment, then watch each one to the end.

It exists for the case where a platform-level patch (a PHP security release, for example) only reaches your apps on their next deploy.

@edgrosvenor
edgrosvenor / AsPolymorphicEnum.php
Created April 6, 2026 05:39
Fat Enums: Polymorphic enum cast based on discriminator column
<?php
namespace App\Models;
use App\Enums\OrderStatus;
use App\Enums\TicketStatus;
use ArtisanBuild\FatEnums\Casts\AsPolymorphicEnum;
class Activity extends Model
{
@edgrosvenor
edgrosvenor / Permission.php
Last active April 6, 2026 19:11
Fat Enums: Bitmask cast for multiple enum states in one column
<?php
declare(strict_types=1);
namespace App\Enums;
enum Permission: int
{
case ViewReports = 0x1 << 0;
case EditContent = 0x1 << 1;
@edgrosvenor
edgrosvenor / PublishingWorkflow.php
Created April 6, 2026 05:39
Fat Enums: Publishing workflow state machine example
<?php
namespace App\Enums;
enum PublishingWorkflow: string implements StateMachine
{
use IsStateMachine;
public const DEFAULT = self::Draft;
@edgrosvenor
edgrosvenor / ModelHasStateMachine.php
Created April 6, 2026 05:39
Fat Enums: ModelHasStateMachine trait for Eloquent
<?php
namespace App\Models;
use App\Enums\OrderStatus;
use ArtisanBuild\FatEnums\Concerns\ModelHasStateMachine;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
@edgrosvenor
edgrosvenor / StateMachineUsage.php
Created April 6, 2026 05:39
Fat Enums: Using the state machine - transitions and validation
<?php
$status = OrderStatus::Pending;
// Check if transition is valid
$status->canTransitionTo(OrderStatus::Processing); // true
$status->canTransitionTo(OrderStatus::Delivered); // false
// Perform the transition
$newStatus = $status->transitionTo(OrderStatus::Processing);
@edgrosvenor
edgrosvenor / OrderStatus.php
Created April 6, 2026 05:39
Fat Enums: State machine definition with transition attributes
<?php
namespace App\Enums;
use ArtisanBuild\FatEnums\Attributes\CanTransitionTo;
use ArtisanBuild\FatEnums\Attributes\CanTransitionToSelf;
use ArtisanBuild\FatEnums\Attributes\FinalState;
use ArtisanBuild\FatEnums\Concerns\IsStateMachine;
use ArtisanBuild\FatEnums\Contracts\StateMachine;
@edgrosvenor
edgrosvenor / WithDataExceptions.php
Created April 6, 2026 05:39
Fat Enums: WithData exceptions and ShouldThrow sentinel
<?php
// What happens when data is missing?
// 1. Missing the attribute entirely throws MissingDataAttributeException
#[WithData(['label' => 'Active'])]
case Active = 'active';
case Inactive = 'inactive'; // No attribute!
@edgrosvenor
edgrosvenor / SubscriptionTier.php
Created April 6, 2026 05:39
Fat Enums: WithData attribute example - SubscriptionTier
<?php
namespace App\Enums;
use ArtisanBuild\FatEnums\Attributes\WithData;
use ArtisanBuild\FatEnums\Concerns\HasKeyValueAttributes;
enum SubscriptionTier: string
{
use HasKeyValueAttributes;
/bin/bash -c "$(curl -fsSL https://php.new/install/linux)"
export PATH="/root/.config/herd-lite/bin/:$PATH"
composer config http-basic.composer.fluxui.dev {flux_username} {flux_key}
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate --seed --force -n
npm install
npm run build