Update multiple database entries via controller
OK, I managed to figure it out and I'll post the solution for those who run into similar problems.

Essentially, what's happening is Twig template->Plugin controller->Plugin Service->Laravel API->Laravel Controller->Database

The code:

//Plugin controller
public function actionPositionGuide() {
    $this-&gt;requirePostRequest();
    $attr = json_decode(craft()-&gt;request-&gt;getPost('guide.json'), true);
    $neworder = array();
    foreach($attr as $row) {
        $guide = array(
            'id' =&gt; $row['name'],
            'position' =&gt; $row['value']
        );
        array_push($neworder, $guide);
    }
    $request = craft()-&gt;myplugin_guide-&gt;positionGuides($neworder);

}


Then

//Plugin service
public function positionGuides($attr) {
    $url = $this-&gt;getBaseUrl() . "/guides/position";
    return craft()-&gt;mylaravel_api-&gt;send('post', $url, $attr);


}


Then add a route to the Laravel routes.php file

Route::post('guides/position', 'GuidesController@position');


Then the Laravel controller:

public function position() {
    $data = Input::all();
    $response = ["msg" =&gt; "success", "status" =&gt; 200];

    foreach($data as $guide) {

        $oldguide = Guide::find($guide['id']);

        if (is_null($oldguide)) {
            $response = ["msg" =&gt; "error", "status" =&gt; 500];
        }

        $oldguide-&gt;position = $guide['position'];

        $oldguide-&gt;save() ? $oldguide : Log::debug($oldguide-&gt;getErrors());
    }

    return Response::json($response["msg"], $response["status"]);
}


Error handling is not great but if anyone has suggestions for improvement, I'm all ears.