How do I create pushable objects on a 2D grid without using Unity's physics?

This is my player’s movement script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public float movementSpeed;
public Transform movePoint;
public LayerMask obstacle;
public bool canMove;
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, movePoint.position, movementSpeed * Time.deltaTime);

if (Vector3.Distance(transform.position, movePoint.position) <= 0.05f)
{
if (Mathf.Abs(Input.GetAxisRaw("Horizontal")) == 1f)
{
if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f), 0.2f, obstacle) && canMove)
{
movePoint.position += new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f);
}
}

else if (Mathf.Abs(Input.GetAxisRaw("Vertical")) == 1f)
{
if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f), 0.2f, obstacle) && canMove)
{
movePoint.position += new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f);
}
}
}
}
}

Is there an effective way I can make pushable objects that sync with the player’s movements? I tried using triggers but they didn’t work.

If they’re in a regular grid it is easy to compute the things you’re pushing and push them at the same speed as the player when the player is pressing against them. Look up movements such as Chips Challenge and Bomberman and any number of 27,000 other suchlike games.

If they’re not in a regular grid you would need to use something (such as physics) to detect proximity and overlap, then move the pushed object appropriately, but it gets REALLY hairy when you start pushing many objects in a non-regular grid.