Why aren’t the details of a purchase being stored in my ‘compra’ table in Laravel using PayPal API?

hola buen dia alguien me podrĂ­a ayudar con un error que estoy teniendo les comento estoy haciendo una tienda virtual con el framework Laravel ya se agrega al carrito de compra y con la cual estoy utilizando una api de paypal para para que se pueda simular una compra real pero el problema esta en que yo cree una base de datos con varias tablas pero una en especifica que se llama “compra” con la cual se creo con migrate en esa tabla se tiene almacenar los datos de la pero no entiendo el porque no se esta almacenando los detalles de dicha compra.

este archivo se llama pago.blade.php

type here
    {{--  --}}

    <script>
        paypal.Buttons({
            style:{
                color: 'blue',
                shape: 'pill',
                label: 'pay'
            },

            createOrder: function(data,actions){
                return actions.order.create({
                    purchase_units:[{
                        amount:{
                            value: '{{ $total }}'
                        }
                    }]
                });
            },

            onApprove: function(data, actions) {


        return  actions.order.capture().then(function(detalles) {
            // console.log(detalles);
            let url = '{{ route('carrito.captura') }}';

            let formData = new FormData();
            formData.append('_token', '{{ csrf_token() }}');
            formData.append('detalles', JSON.stringify(detalles));

            return fetch(url, {
                method: 'POST',
                body: formData
            });
        });
    },



            onCancel: function(data){
                alert("pago cancelado")
            }

        }).render('#paypal-button-container');
    </script>


el siguente archivo es mi archivo CarritoController

    
     public function captura(Request $request)
{
    $json = $request->getContent();
    $datos = json_decode($json, true);

    echo '<pre>';
    print_r($datos);
    echo '</pre>';

    if (is_array($datos)) {
        $detalles = $datos['detalles'];
        $id_transaccion = $detalles['id'];
        $total = $detalles['purchase_units'][0]['amount']['value'];
        $status = $detalles['status'];
        $fecha = $detalles['update_time'];
        $fecha_nueva = date('Y-m-d H:i:s', strtotime($fecha));
        $email = $detalles['payer']['email_address'];
        $id_cliente = $detalles['payer']['payer_id'];

        DB::table('compra')->insert([
            'id_transaccion' => $id_transaccion,
            'fecha' => $fecha_nueva,
            'status' => $status,
            'email' => $email,
            'id_cliente' => $id_cliente,
            'total' => $total
        ]);

        $id = DB::getPdo()->lastInsertId();

        return response()->json(['success' => true, 'id' => $id]);
    }

    return response()->json(['success' => false]);
}

y esta es mis rutas

Route::post('/captura', [CarritoController::class, 'captura'])->name('carrito.captura');

este es mi archivo compra.php con la esta el nombre de las columnas de mi tabla compra

class Compra extends Model
{
    use HasFactory;
    protected $table = 'compra';

    protected $fillable = [
        'id_transaccion',
        'fecha',
        'status',
        'email',
        'id_cliente',
        'total'
    ];

enter image description here