You need to create a higher-level structure of entity state, bundle it all up, and send it as a single thing.
For example, you could have a structure for your player that looks something like:
struct PlayerStatePacket {
float pos_x;
float pos_y;
float pos_z;
float vel_x;
float vel_y;
float vel_z;
float look_right;
float look_up;
float aim_right;
float aim_down;
uint32_t control_bitmask; // walking/running/strafing/crouching/....
uint32_t num_shots_fired;
uint32_t num_grenades_thrown;
};
And you send it like so:
PlayerStatePacket psp = { ... };
ENetPacket * packet = enet_packet_create (&psp, sizeof(psp), 0);
/* Send the packet to the peer over channel id 0. */
enet_peer_send (peer, 0, packet);
Your receiving end would have to know that channel 0 means “the player state packet of this entity." It could then extract this struct again, and update whatever needs updating on the remote end.
Once you've made this work, you will likely want to add a little more structure. For example, you might add two uint16_t at the beginning of the struct, for “which player is this for” and “what kind of packet is this?” (and start every packet with those two fields, so you can tell them apart when receiving.)
Once you have all of that working, you can start working on compressing the size of the packet, using rounding, bit packing, delta encoding, and so forth – but, honestly, those are not super important for a simple modern networked game. It's more important to get gameplay and interpolation/extrapolation right!