🚗🏍️ Welcome to Motoshare!

Turning Idle Vehicles into Shared Rides & New Earnings.
Why let your bike or car sit idle when it can earn for you and move someone else forward?

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Partners earn. Renters ride. Everyone wins.

Start Your Journey with Motoshare

Comprehensive Guide: Fixing “PHP >= 8.3 Required” Error on Laravel Project Running PHP 8.2

Uncategorized

Here is a clean, complete, professional, step-by-step guide explaining exactly how we fixed the PHP version conflict in your Laravel project.
You can save this as documentation for your team.


✅ Comprehensive Guide: Fixing “PHP >= 8.3 Required” Error on Laravel Project Running PHP 8.2

This guide explains how to resolve the Composer error:

Your Composer dependencies require a PHP version ">= 8.3.0". You are running 8.2.12.

This happens when your project (Laravel or its packages) requires PHP 8.3, but your server is running PHP 8.2.

We solved it without upgrading the server.
This guide explains exactly what was done.


📌 1. Identify the Real Problem

Even though the project’s composer.json allowed PHP 8.2, Composer still refused to run because:

✔️ Laravel 11 requires PHP 8.3

✔️ A package (lcobucci/clock) was automatically installed in a version requiring PHP 8.3

This created a dependency conflict.

To detect the package blocking PHP 8.2, we ran:

composer why-not php 8.2

Output:

lcobucci/clock 3.5.0 requires php (~8.3.0)

This confirmed the exact blocker.


📌 2. Understanding Why This Package Was Installed

Laravel Passport depends on:

  • lcobucci/jwt
  • lcobucci/clock

Because you were using Laravel 11, Composer attempted to install the latest version of lcobucci/clock, which requires PHP 8.3+.


📌 3. Solution Overview

We had to:

✔️ Downgrade Laravel 11 → Laravel 10 (supports PHP 8.1 & 8.2)

✔️ Force lcobucci/clock to a PHP-compatible version (2.2 instead of 3.5)

✔️ Regenerate composer.lock and vendor directory

After that, everything worked smoothly on PHP 8.2.


🚀 4. Step-by-Step Fix

STEP 1 — Modify composer.json

We replaced the incompatible versions with PHP-8.2 compatible ones.

✔️ Changed Laravel version

"laravel/framework": "^10.0"

✔️ Forced lcobucci/clock to compatible version

"lcobucci/clock": "^2.2"

✔️ Ensured PHP supports 8.2

"php": "^8.1|^8.2"

✔️ Final working composer.json

(We provided this file; keeping it here for reference.)

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",

    "require": {
        "php": "^8.1|^8.2",
        "laravel/framework": "^10.0",
        "laravel/passport": "^12.0",
        "laravel/tinker": "^2.8",
        "lcobucci/jwt": "^4.0",
        "lcobucci/clock": "^2.2",
        "twilio/sdk": "^8.3.8"
    },

    "require-dev": {
        "filp/whoops": "^2.0",
        "mockery/mockery": "^1.6.11",
        "nunomaduro/collision": "^7.0",
        "phpunit/phpunit": "^10.5"
    },

    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },

    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },

    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": ["database/seeds", "database/factories"]
    },

    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },

    "minimum-stability": "dev",
    "prefer-stable": true,

    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

📌 STEP 2 — Remove old lock file and vendor directory

This forces Composer to rebuild dependencies using the new versions.

rm -f composer.lock
rm -rf vendor

📌 STEP 3 — Reinstall dependencies

composer install

Now Composer installs:

  • Laravel 10
  • lcobucci/clock 2.2
  • PHP-8.2 compatible versions only

📌 STEP 4 — Optimization works again

php artisan optimize

No more PHP version error.


🎉 5. Final Result

✔️ Laravel project now works on PHP 8.2
✔️ No Composer platform errors
✔️ Passport + JWT + Clock packages all compatible
✔️ artisan optimize runs successfully
✔️ No need to upgrade server PHP version


6. Why This Guide Works

Because it follows the exact Composer dependency resolution logic:

  • Laravel 11 requires PHP 8.3 → downgraded
  • lcobucci/clock v3.5 requires PHP 8.3 → forced version 2.2
  • composer.lock holds old versions → regenerated
  • vendor packages removed → fresh install

This is the safest and correct way to fix PHP compatibility issues

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x