Laravel.io
<?php

namespace App\Http\Controllers\Api\Payments;

use App\Http\Requests\OrderRequest;
use App\Models\Order;
use App\Models\Product;
use App\Models\Server;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Maksa988\UnitPay\UnitPay;
use \Thedudeguy\Rcon;

class UnitPayController extends Controller
{
    public static function searchOrder(Request $request, $orderId)
    {
        $order = Order::join('products', 'products.id', '=','orders.product_id')
            ->join('servers', 'products.server_id', '=', 'servers.id')
            ->where(
                [
                    ['orders.id', '=', $orderId],
                    //['orders.server_id', '=', $product->server_id],
                    ['products.surcharge', '=', true],
                    ['orders.paid', '=', false]
                ])
            ->select(
                [
                    'orders.product_id',
                    'products.server_id',
                    'products.title',
                    'products.surcharge',
                    'products.enabled',
                    'orders.paid',
                    'orders.cost'
                ])
            ->first();

        if($order !== null) {
            if($order['paid'] == false) {
                $order['cost'] = $request->get('params')['orderSum'];

                return $order;
            }
        }

        return false;
    }
    /**
     * When paymnet is check, you can paid your order
     *
     * @param Request $request
     * @param $order
     * @return bool
     */
    public function paidOrder(Request $request, $order)
    {
        //Get object product
        $product = Product::find($order->product_id);

        //Get object server
        $server = Server::find($order->server_id);

        //dd($order);

        if( !is_object($product) || !is_object($server) ) return false;

        $rcon = new Rcon($server['rcon_ip'], $server['rcon_port'], $server['rcon_password'], 3);

        if ($rcon->connect())
        {
            //Serialise cmd
            $cmd = str_replace('%nickname%', $order->nickname, $product['rcon_cmd']);

            //Send cmd
            $rcon->sendCommand($cmd);

            //Update status order
            $order->paid = true;
            $order->save();

            //Status result for unitpay middleware
            return true;
        }
    }

    /**
     * Start handle process from route
     *
     * @param Request $request
     * @param UnitPay $unitPay
     * @return mixed
     * @throws \Maksa988\UnitPay\Exceptions\InvalidPaidOrder
     * @throws \Maksa988\UnitPay\Exceptions\InvalidSearchOrder
     */
    public function handlePayment(Request $request, UnitPay $unitPay)
    {
        return $unitPay->handle($request);
    }
}

Please note that all pasted data is publicly available.