Laravel Import Template with Error Handling and Try Catch for failures

public function import_data(Request $request)
{
    $success = true;

    try {
        DB::beginTransaction();

        foreach ($request->array_or_object as $item) {
            $record_payload = [
                "name" => $item->name,
                "surname" => $item->surname,
            ];

            $record_id = $item->id ?? null;
            $inserted_record = RecordModel::updateOrCreate(['id' => $record_id], $record_payload);

            if (!$inserted_record) {
                $success = false;
                break; // Stop further processing if any insert fails
            }
        }

        if ($success) {
            DB::commit();
            return ['status' => true, 'message' => 'Success, Your import has completed with no issues.'];
        } else {
            DB::rollBack();
            return ['status' => false, 'message' => 'Unsuccessful Transaction. Not an exception.'];
        }
    } catch (\Exception $e) {
        DB::rollBack();
        $i = count($e->errorInfo) - 1;
        return ['status' => false, 'message' => $e->errorInfo[$i]];
    }
}

Laravel Migration Error – SQLSTATE[HY000] [2002] php_network_getaddresses

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql 
failed: Temporary failure in name resolution (SQL: select * from 
information_schema.tables where table_schema = laravel and 
table_name = migrations and table_type = 'BASE TABLE')

The issue has to do with the env variable DB_HOST
You need to change it. To what your localhost is configured for.
It can most likely be one of the following.

mysql
127.0.0.1
localhost

or alternatively check your docker container name for your mysql DB:
mysql_container_name

Create New Laravel Project & Generate Auth

Create Project

Just use one.
The are multiple as examples.

composer create-project --prefer-dist laravel/laravel blog "11.*"

composer create-project --prefer-dist laravel/laravel blog "10.*"

composer create-project --prefer-dist laravel/laravel blog "9.*"

Generate Auth

An alternative instead of running npm run build.
Run npm run dev OR npm run watch

// With Boothstrap
composer require laravel/ui --dev
php artisan ui bootstrap --auth
npm install 
npm run build

// With VUE
composer require laravel/ui --dev
php artisan ui vue --auth
npm install
npm run build 

Uploading your js build to the server

If you using git and working locally and using laravel vite.
Build your project and use the below gitignore. This will push your build to the server.

The below is that if you don't include certain directories then your build files will not get uploaded and some servers don't have suffucient resources to run builds online.
So you need to build locally and upload the build via GIT.

/vendor/
npm-debug.log
yarn-error.log
public/hot
public_html/storage
public_html/hot
public/robots.txt
storage/*.key
.env
.htaccess
Homestead.yaml
Homestead.json
/.vagrant
.phpunit.result.cache