You can decode that JSON, create a collection from the resulting array of arrays, and collapse the collection into a simple associative array:
// assuming the JSON is received as a single field???
$userData = collect(json_decode($request->get('json')))
->collapse();
//[
// "email" => "[email protected]",
// "password" => "123456",
// "name" => "123456",
// "surname" => "123456",
//]
$user = $this->user->create($userData);